数据结构(3):java使用数组模拟堆栈
堆栈原理:
数组模拟堆栈:
//数组模拟栈 class ArrayStack{ //栈顶 private int top = -1; private int maxSize; private int[] arrayStack; public ArrayStack(int maxSize){ this.maxSize = maxSize; arrayStack = new int[maxSize]; } //栈是否满 public boolean isFull(){ return top == maxSize-1; } //栈是否为空 public boolean isNull(){ return top == -1; } /* * [3] top=2 * [2] top=1 * [1] top=0 * top=-1 * * * */ //入栈 public void push(int data){ if(isFull()){ System.out.println("已经满了,无法入栈了"); return; } top++; arrayStack[top] = data; } //出栈 public int pop(){ if(isNull()){ throw new RuntimeException("栈数据不能为空"); } int value = arrayStack[top]; top--; return value; } //显示栈数据 public void list(){ if(isNull()){ System.out.println("栈数据为空,无法显示栈数据"); return; } for(int i=top;i>=0;i--){ System.out.printf("arrayStack[%d]=%d",i,arrayStack[i]); } } }
参考:韩顺片java数据结构和算法