Java中Stack的使用详解

       Stack是一种运算受限的线性表,其特点在于仅允许在表的一端(即表尾)进行插入和删除操作。这一端被称为栈顶,而相对的另一端则称为栈底。向一个栈插入新元素的操作称为进栈或入栈,它将新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素的操作称为出栈或退栈,它将栈顶元素删除掉,使其下面的相邻元素成为新的栈顶元素。由于栈的插入和删除运算仅在栈顶一端进行,后进栈的元素必定先出栈,因此栈也被称为后进先出表(Last In First Out,简称LIFO)。

      栈结构的示意图如下:

 

       下列为Stack的一些常用方法: 

    

       push()方法通常称之为压栈,也就是将元素放入栈内使用也非常简单:

 //实例化一个栈

Stack<Integer> stack = new Stack<>();

//进行压栈

stack.push(10);

    通过这种方法我们就将10放入栈中同时也会有一个返回值可以用也可以不同 。

   pop()将栈顶元素出栈并返回,这就非常容易理解了,简单理解就是返回栈顶元素并将栈顶元素移除栈顶位置。

System.out.println(stack.pop());

   此时输出结果就是10,如果我们此时再一次进行pop()操作那么将会报错因为此时栈中已经没有元素了:

 

    此时编译器会出现空栈错误。

peek()与pop()的区别就是peek()只是瞄一眼并不将栈顶元素移除,如果我们进行上述操作:

System.out.println(stack.peek());

System.out.println(stack.peek());

System.out.println(stack.peek());

     输出结果都是10,因为在访问的时候我们并没有将栈顶元素进行移除,因此·我们可以无限次的访问栈顶元素(前提是栈顶得有元素)。

    empty()就非常简单了判断栈是否为空,如果为空返回true反之返回false。

  如果我们此时开始访问将会返回一个false因为此时栈内已经有一个元素10,因此不为空返回false。 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熬到半夜敲代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值