数据结构之--栈(Java代码)

什么是栈呢?

栈就是一种数据结构,只能从表的一端进行插入和删除。

它的特点就是数据先进来的最后才能出去,(先进后出),如图所示:



Push(入栈) 和 Pop (出栈),这是栈的两个最重要的动作。

为了方便读取栈顶数据,通常还是会有一个Peek(查看)函数。


栈的容量通常很小,是保存临时数据的。

那如何用Java的数据结构来表示栈呢?-----用“数组”来进行栈的操作。


public class Stack {
    private int [] arr ;  //数组
    private int maxSize ; //数组的最大长度
    private int top;//类似于栈的指针

    //对“栈”进行初始化
    public Stack( int maxSize){
        this.maxSize = maxSize ;
        this.arr = new int [maxSize] ;
        this.top = -1 ;
    }

    //判断栈是否为空
    public boolean isEmpty(){
        return ( top == -1 );
    }

    //判断栈是否已满
    public boolean isFull(){
        return ( top == maxSize );
    }

    //Push 入栈
    public void push ( int number ) {
        //需要先判断栈是否已满
        if( !isFull() ){
            arr[++top] = number ;
        } else {
            System.err.println("This Stack is Full!!");
        }
    }

    //Pop 出栈
    public int pop () {
        //需要先判断栈是否为空
        if( !isEmpty() ){
            return arr[ top-- ];
        } else {
            System.err.println("The Stack is Empty , there is no value to pop!");
            return -1;
        }
    }

    //Peek查看栈顶元素
    public int peek(){
        //需要判断是否为空栈
        if( top >= 0 ){
            return arr[top];
        }else {
            System.err.println("The Stack is Empty , there is no value to peek!");
            return -1;
        }
    }

    public static void main(String [] args){
        Stack stack = new Stack(5);
        stack.push(22);
        stack.push(33);
        stack.push(44);
        stack.push(55);
        stack.push(66);

        while ( stack.top != -1 ){
            System.out.println(stack.pop());
        }

    }
}

结果如图所示,数据是 先进后出


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值