下面给出的代码是堆栈的实现。 在它的pop函数中,它不会返回top下方的元素,而是top元素
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("");}}
答案 0 :(得分:1)
否; top--
的意思是:从顶部减去1,但是此表达式解析为top
递减之前的值。所以:
int x = 5; System.out.println(x--); System.out.println(x);
将先打印5
,然后再打印4
。
您粘贴的代码使用top作为指示符来指向最顶部的元素,这就是为什么堆栈为空时top
为-1的原因。这有点不合常规(如果用top
指向第一个空闲插槽的话,top
会与堆栈的大小完全匹配),但是那是只是样式问题。