• 数据结构(3):java使用数组模拟堆栈


       堆栈原理:  

        

      数组模拟堆栈: 

        

    //数组模拟栈
    class ArrayStack{
        //栈顶
        private int top = -1;
        private int maxSize;
        private int[] arrayStack;
    
        public ArrayStack(int maxSize){
            this.maxSize = maxSize;
            arrayStack = new int[maxSize];
        }
    
        //栈是否满
        public boolean isFull(){
            return top == maxSize-1;
        }
    
        //栈是否为空
        public boolean isNull(){
            return top == -1;
        }
    
    
        /*
        * [3] top=2
        * [2] top=1
        * [1] top=0
        * top=-1
        *
        *
        * */
        //入栈
        public void push(int data){
            if(isFull()){
                System.out.println("已经满了,无法入栈了");
                return;
            }
            top++;
            arrayStack[top] = data;
        }
    
        //出栈
        public int pop(){
            if(isNull()){
                throw new RuntimeException("栈数据不能为空");
            }
            int value = arrayStack[top];
            top--;
            return value;
        }
    
        //显示栈数据
        public void list(){
            if(isNull()){
                System.out.println("栈数据为空,无法显示栈数据");
                return;
            }
            for(int i=top;i>=0;i--){
                System.out.printf("arrayStack[%d]=%d",i,arrayStack[i]);
            }
        }
    
    }

      参考:韩顺片java数据结构和算法

  • 相关阅读:
    fork()和僵尸进程
    布尔变量面试题
    vue学习之二
    vue学习之一
    圈复杂度
    phpExcel与jq的ajax
    Object.defineProperty与修改某个数组实现监听效果
    mpn不得不说的坑
    论javascript编写优美
    微信小程序之学习
  • 原文地址:https://www.cnblogs.com/piaomiaohongchen/p/14230069.html
Copyright © 2020-2023  润新知