用数组来实现Stack
Posted dazhu123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用数组来实现Stack相关的知识,希望对你有一定的参考价值。
1:Stack特点
stack:栈,是一种特殊的数据结构,有着先入后出的特点(first in last out)。stack中栈底始终不变,只有一端能变化。栈顶在有数据push的时候增大,有数据pop的时候减小!相比于队列Queue而言,队列是先进先出(first in first out),队列有数据进来时,写指针增加,而有数据读出时,读指针增大,两个指针都是可变的!
2:应用场景
子程序的调用,递归程序的调用以及中缀表达式的实现
3:代码实现
下面更过上面的分析,基于数组来实现stack的pop,push的功能
//使用数组来构建stack class stackInArray{ private Object[] array;//数组 private int stackBottom ;//stack的底部指向array的地步array[0] private int stackTop ;//stack的底部指向array的地步array[0] public stackInArray(Object[] o ){ this.array = o;//指向构造的数组当作stakc的内存 this.stackBottom = 0; this.stackTop = 0; } //出栈 public Object stackPop() { Object o = null; if(stackTop == 0) { System.out.println("内存已空,无法出数据"); } else { stackTop--; o = array[stackTop]; } return o; } //进栈 public void stackPush(Object o) { if(stackTop == array.length) { System.out.println("内存已满,无法存入"); return ; } else { array[stackTop] = o; stackTop++; } } }
以上是关于用数组来实现Stack的主要内容,如果未能解决你的问题,请参考以下文章