在java解释中弹出堆栈[关闭]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在java解释中弹出堆栈[关闭]相关的知识,希望对你有一定的参考价值。
下面给出的代码是堆栈的实现。在它的pop函数中它不会返回顶部元素而不是顶部元素
public class MyStack {
private int maxSize;
private long[] stackArray;
private int top;
public MyStack(int s) {
maxSize = s;
stackArray = new long[maxSize];
top = -1;}
public void push(long j) {
stackArray[++top] = j;}
public long pop() {
return stackArray[top--];}
public boolean isEmpty() {
return (top == -1);}
public boolean isFull() {
return (top == maxSize - 1);}
public static void main(String[] args) {
MyStack theStack = new MyStack(10);
theStack.push(10);
theStack.push(20);
theStack.push(30);
theStack.push(40);
theStack.push(50);
theStack.pop();
while (!theStack.isEmpty()) {
long value = theStack.pop();
System.out.print(value);
System.out.print(" ");}
System.out.println("");}}
答案
没有; top--
的意思是:从顶部减去1,但这个表达式解析为top
在递减之前所持有的。所以:
int x = 5; System.out.println(x--); System.out.println(x);
将打印5
然后4
。
您粘贴的代码使用top作为指示符指向最顶层的元素,这就是当堆栈为空时top
为-1的原因。这有点不正统(它们都会有点清洁,top
只会匹配堆栈的大小,如果你写的那样top
指向第一个空闲位置),但这只是一个风格问题。
以上是关于在java解释中弹出堆栈[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Java Stack - 如何从堆栈中弹出()和推送()多个元素?
从后台堆栈恢复片段时的 savedInstanceState