数据结构篇——栈

栈是一种数据的存储机制,只能在一端进行插入和取出操作,具有先进后出的特点。


栈数据结构中心思想
 栈有两个要素, 栈底和栈顶。数据入栈时,栈顶升高。数据出栈时,栈顶下降。而栈底是保持不变的。当栈顶与栈底重合时,则这个栈为空栈。
//定义一个栈的类
class Stack{
    int top;    //栈顶
    int size;   //栈的最大容量
    Object[] p;   //栈空间的指针,根据不同的需要申请不同的数据存储空间,这里是基类类型的


    //创建一个栈
    public Stack(int size){
        //申请指定大小的栈空间
        this.top = 0;
        this.size = size;
        this.p = new Object[size];
    };
    //判空栈
    public boolean StackEmpty(){
        if(0 == this.top){
            return true;
        }
        return false;
    }
    //判满栈
    public boolean StackFull(){
        if(this.size == this.top){
            return true;
        }
        return false;
    }
    //清空栈
    public void ClearStack(){
        this.top = 0;
    }
    //元素入栈
    public boolean Push(Object elem){
        //入栈前先判断栈是否为满
        if(this.StackFull()){
            return false;
        }
        this.p[this.top] = elem;
        this.top++;//栈顶上浮
        return true;
    }
    //元素出栈
    public boolean Pop(Object elem){
        //出栈前先判断栈内是否有元素
        if(this.StackEmpty()){
            return false;
        }
        elem = this.p[this.top-1];
        this.top--;//栈顶下降
        return true;
    }
    //遍历栈
    public void Traverse(){
        //从栈底开始遍历
        for(int i = 0 ; i < this.top ; i++){
            System.out.print(this.p[i] + ",");
        }
        //从栈顶开始遍历
        for(int j = this.top-1 ; j >= 0 ; j--){
            System.out.print(this.p[j] + ",");
        }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值