我是JAVA n00b。我正在尝试在 Java 中实现堆栈数据结构。push、peek 和 display 的算法运行良好。该pop
算法未按预期工作:
public int pop() {
int temp;
if(isEmpty())
return -1;
else {
temp = arr[topElem];
topElem--; // points to the top most element in the stack
count--; // keeps track of the total number of elements in the stack
return temp;
}
}
该算法的case
inswitch
语句如下:-
case 2:
if(st.pop()==-1)
System.out.println("The stack is empty.");
else
System.out.printf("The element popped is %d\n",st.pop());
break;
如果输入的元素是(按该顺序):- 1 2 4 那么在第一次调用时pop
,弹出 2,然后只有 1 留在堆栈中。我能够理解可能有什么问题,但无法在代码中查明它。