来源:互联网 发布:mac版的rar 解压软件 编辑:程序博客网 时间:2024/06/08 11:42

       栈是什么?举个例子,小时候家里烧的煤球,大人总是把煤球一个个放进炉子里,当最下层的煤球烧完时,也是用夹子从最上面的开始,一个一个将煤球拿出来,这就是栈,先进后出,后进先出(除非底漏了,那是队列,哈哈)。大部分微处理器都是基于栈的原理,还有一些老式的计算器。
       将元素插入栈中,叫入栈,将元素从栈中取出,叫出栈。

       下面我们用数组来实现栈:

public class Stack {    private int size;//栈的容量    private long[] arrayStack;    private int top;//栈顶元素位置    public Stack(int s){        size = s;//栈的容量        arrayStack = new long[size];//创建栈        top = -1;//初始化栈顶元素,此时栈为空    }    public void push(long value){        arrayStack[++top] = value;//入栈,先top加1,再arrayStack[top]    }    public long pop(){        return arrayStack[top--];//出栈    }    public long peek(){        return arrayStack[top];//查看栈顶元素    }    public boolean isEmpty(){        return top == -1;//判断栈是否为空    }    public boolean isFull(){        return top == size - 1;//判断栈是否满    }    public static void main(String[] args) {        Stack stack = new Stack(10);        stack.push(1);        stack.push(3);        stack.push(5);        stack.push(7);        System.out.println("栈顶元素为:"+stack.peek());        while(!stack.isEmpty()){            System.out.println(stack.pop()+"出栈! ");        }    }}

运行结果为:

栈顶元素为:77出栈! 5出栈! 3出栈! 1出栈!