栈基本操作的java代码实现(建栈,初始化栈、进栈、出栈)
生活随笔
收集整理的這篇文章主要介紹了
栈基本操作的java代码实现(建栈,初始化栈、进栈、出栈)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
定義棧
/*** className:Statck** @author:zjl* @version:0.1* @date:2020/7/1512:22* @since:jdk1.8*/ public class Statck {private int maxSize;//棧最大容量private int top;//棧頂指針(始終指向棧頂的節點)private Object[] stack;public Statck(int maxSize) {this.maxSize = maxSize;this.stack = new Object[maxSize];this.top = -1;}public int getMaxSize() {return maxSize;}public void setMaxSize(int maxSize) {this.maxSize = maxSize;}public int getTop() {return top;}public void setTop(int top) {this.top = top;}public Object[] getStack() {return stack;}public void setStack(Object[] stack) {this.stack = stack;}}工具類(操作棧的相關方法)
/*** className:Util** @author:zjl* @version:0.1* @date:2020/7/1512:16* @since:jdk1.8*/ public class Util {/*** 入棧* @param obj* @param statck* @return*/public boolean push(Object obj,Statck statck){if(statck.getTop()==statck.getMaxSize()-1)//判斷是否棧滿return false;statck.setTop(statck.getTop()+1);statck.getStack()[statck.getTop()] = obj;return true;}/*** 出棧* @param statck* @return*/public Object pop(Statck statck){if(statck.getTop()==-1)//判斷是否???/span>throw new RuntimeException("棧空,出棧失敗!");Object obj = statck.getStack()[statck.getTop()];statck.setTop(statck.getTop()-1);return obj;}/*** 初始化棧* @param statck*/public void initi(Statck statck){for (int i = 0; i < statck.getTop(); i++) {statck.getStack()[i] = null;}statck.setTop(-1);}/*** 控制臺打印棧* @param statck*/public void show(Statck statck){System.out.println("*************");System.out.print("*");for (int i = 0; i <=statck.getTop(); i++) {System.out.print(statck.getStack()[i]+" ");}System.out.print("\n*************");}}測試類
/*** className:Test** @author:zjl* @version:0.1* @date:2020/7/1512:58* @since:jdk1.8*/ public class Test {public static void main(String[] args) {//建立一個棧Statck statck = new Statck(6);//實例化工具類Util util = new Util();//進棧3個元素util.push("1",statck);util.push("2",statck);util.push("3",statck);//打印棧System.out.println("===================進棧三次后棧狀態=================");util.show(statck);//出棧兩個元素util.pop(statck);util.pop(statck);//打印棧System.out.println("\n===================出棧兩次次后棧狀態=================");util.show(statck);//再進棧5次util.push("4",statck);util.push("5",statck);util.push("6",statck);util.push("7",statck);util.push("8",statck);//打印棧System.out.println("\n=============再進棧五次次后棧狀態(棧滿)==============");util.show(statck);//嘗試再進棧一個元素util.push("0",statck);//打印棧System.out.println("\n====嘗試再進棧一次次后棧狀態(進棧失敗,棧狀態不變)====");util.show(statck);//清空棧(初始化)util.initi(statck);//打印棧System.out.println("\n===================初始化棧(???#xff09;====================");util.show(statck); // //嘗試再出棧一次 // util.pop(statck);//報出異常}}測試結果(控制臺顯示)
??粘鰲=Y果
總結
以上是生活随笔為你收集整理的栈基本操作的java代码实现(建栈,初始化栈、进栈、出栈)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux下启动tomcat报java.
- 下一篇: Teiid:数据虚拟化Data Virt