スタックをポップしてポップと比較することでスタックがソートされているかどうかチェックしています。ポップがピークよりも大きい場合は、その2つの要素が順番になっていることがわかります。スタックが空でない限り、このループを実行します。空のスタックではじめるのをやめてください。
私が取り組んでいる問題は、スタックの最終要素です。私は最終的なポップを行いますが、空のスタックを覗き見て、順番どおりになるようにします。そこには何もないので、私はランタイムエラーが発生します。
public static boolean isSorted(Stack<Integer> s){
boolean result = true;
while(!s.empty()){
if(s.pop() < s.peek()){
result = false;
}
}
return result;
}
は、私はとてもポップでのぞき見を押すだけ使用して、この独占的にスタックしてやろうとしています。 ArrayListからのものはありません。すべての要素をチェックしながら、この問題を解決するにはどうすればよいですか?
一時変数にpopを格納しようとしましたが、何も修正されませんでした。私が望んでいたことを確信していません
私は実際に何かを試しましたgも同様ですが、まだエラーがあります。私は別のショットを与え、それがどのように進むのかを教えてあげます。 – Podo
あなたはスタックに固執するだけでなく、確かな説明を与えてくれるので、私はこれを正しい答えとして選んでいます。ありがとうございました! – Podo
私は元のスタックを変更したくないということを含めるべきでした。あなたの解決策はそれを行いますが、それが問題ではないことが要求されていれば、問題はありません。ループのどこで値をセカンダリスタックにプッシュしますか? – Podo