首页 > 编程语言 > 详细

5, java数据结构和算法: 栈

时间:2020-05-31 22:29:11      阅读:46      评论:0      收藏:0      [点我收藏+]

直接上代码:

  class ArrayStack{
    //用数组模拟栈
    int maxSize;
    int[] stack;
    int top = -1;//表示栈顶

    public ArrayStack(int maxSize) {
        this.maxSize = maxSize;
        this.stack = new int[maxSize];
    }

    //1, 入栈
    public void pushStack(int value){
        //判断是否满
        if(IsFull()){
            System.out.println("栈满了,不能添加");
            return;
        }
        top++;
        stack[top] = value;
    }

    //2, 出栈
    public int popStack() throws Exception {
        if(IsEmpty()){
            throw  new Exception("栈为空,不能出栈");
        }
        int value = stack[top];
        top--;
        return value;
    }
    //3. 栈的遍历
    public void show(){
        if(stack.length == 0){
            System.out.println("栈空,不能遍历");
            return;
        }
        for (int i = top; i >= 0; i--) {
            System.out.println(stack[i]);
        }

    }
    private boolean IsFull() {
        return top == maxSize-1;
    }
    private boolean IsEmpty(){
        return top == -1;
    }
}

测试代码:

    public static void main(String[] args) throws Exception {
        ArrayStack stack = new ArrayStack(4);
        stack.pushStack(1);
        stack.pushStack(2);
        stack.pushStack(3);
        stack.pushStack(4);

        stack.show();//4-3-2-1  先进后出

        System.out.println("========");
        stack.popStack();
        stack.show();//3-2-1
    }

测试结果:

技术分享图片

5, java数据结构和算法: 栈

原文:https://www.cnblogs.com/lvcai/p/13021835.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!