数据结构——栈结构
栈只允许访问一个数据项即最后插入的数据项:即最后插入的数据项。移出这个数据项之后才能访问倒数第二个插入的数据项,依此类推。即后进先出。放入是一种压栈的过程;取出是一种弹栈的过程,弹栈的时候并删除这个元素。
以我们生活中的桶装薯片的例子可以说明这一点,当厂家在生产薯片的时候,要将薯片一片片的装入食品桶中,这就是一个压栈的过程。最先放的薯片将在食品桶的最底部。最后放的在食品桶的最上面。 当我们买到薯片,打开包装,享受薯片给我们带来的美味时,此时就是一个弹栈的过程,我们只能从最上面开始取出吃掉,然后再取下一片吃,直到将整盒薯片吃完。
栈的Java代码:
//实现栈结构的类 public class MyStack { private int maxSize; //栈的长度 private int[] stackArray; //栈数组 private int top; //存放数组下标值 //构造方法 public MyStack(int s) { maxSize = s; stackArray = new int[s]; /*此处定义为负一,是因为数组下 *标是0开始计算的,在下面压栈的方 *法要先执行递增 */ top = -1; } //压栈 public void push(int i) { stackArray[++top] = i; // System.out.println(top); } //弹栈 public int pop() { return stackArray[t