3.栈
这里简单介绍一下栈及其实现.
栈,你想成一个试验管吧,每次只能往里面塞直径刚好管口大小的小圆球,对,每次只能塞一个,而且取出来的话,也只能取最外的最新塞进去的那个元素,
对的,伙计,这就叫先进后出。栈的经典描述.
接下来使用java用数组来实现一个栈.
public class MyStack { int maxSize; int top; int[] stackX; public MyStack(int len){ maxSize=len; top=-1; stackX=new int[maxSize]; } public void push(int val){ this.stackX[++top]=val; } public int pop(){ return this.stackX[top--]; } public int peek(){ return this.stackX[top]; } public boolean isEmpty(){ return -1==top; } public boolean isFull(){ return top==maxSize-1; } // public static void main(String[] args) { // MyStack myStack=new MyStack(10); // for(int i=0;i<10;i++){ // myStack.push(i); // System.out.print(i); // } // System.out.println(); // for(int i=0;i<10;i++){ // System.out.print(myStack.pop()); // } // } }
下面注释掉的测试代码,运行结果应该是这样的。
本人倡导的讲解方式:代码示例[学以致用,不仅要知道理论,还要知道理论怎么付诸实践],
文字讲解[不仅知道要怎么用,还要知道是怎么回事],
画图讲解[有图有真相,用图的形式将代码嵌入到理论中,整体理解]