私はJAVA n00bです。Java でスタック データ構造を実装しようとしています。プッシュ、ピーク、表示のアルゴリズムは正常に機能しています。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 だけがスタックに残ります。何が問題なのかは理解できますが、コードで特定できません。