码迷,mamicode.com
首页 > 编程语言 > 详细

用数组来实现Stack

时间:2020-02-21 19:58:44      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:span   else   vat   调用   ast   变化   实现   public   style   

1:Stack特点

  stack:栈,是一种特殊的数据结构,有着先入后出的特点(first in last out)。stack中栈底始终不变,只有一端能变化。栈顶在有数据push的时候增大,有数据pop的时候减小!相比于队列Queue而言,队列是先进先出(first in first out),队列有数据进来时,写指针增加,而有数据读出时,读指针增大,两个指针都是可变的!

2:应用场景

  子程序的调用,递归程序的调用以及中缀表达式的实现

3:代码实现

下面更过上面的分析,基于数组来实现stack的pop,push的功能

//使用数组来构建stack
class stackInArray{
    
    private Object[] array;//数组
    private int stackBottom ;//stack的底部指向array的地步array[0]
    private int stackTop ;//stack的底部指向array的地步array[0]
    
    
    public stackInArray(Object[] o ){
        this.array = o;//指向构造的数组当作stakc的内存
        this.stackBottom = 0;
        this.stackTop = 0;
    }
    
    //出栈
    public Object stackPop() {
        Object o = null;
        if(stackTop == 0) {
            System.out.println("内存已空,无法出数据");
        }
        else {
            stackTop--;
            o = array[stackTop];
        }
        return o;
    }
    
    //进栈
    public void stackPush(Object o) {
        if(stackTop == array.length) {
            System.out.println("内存已满,无法存入");
            return ;
        }
        else {
            array[stackTop] = o;
            stackTop++;
        }
    }
}

 

用数组来实现Stack

标签:span   else   vat   调用   ast   变化   实现   public   style   

原文地址:https://www.cnblogs.com/dazhu123/p/12342600.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!