2017-06-20 11 views
1
1.theStack.push(1); 
2.theStack.push(2); 
3.theStack.push(3); 
4.theStack.push(theStack.pop()); 
5.theStack.push(theStack.pop() +theStack.pop()); 
6.theStack.push(6); 
7.theStack.push(7); 
8.theStack.push(theStack.pop() * theStack.pop()); 

最初の3行が実行され、出力は データ構造:スタックは

|3| 
|2| 
|1| 

は、私が言及したライン上の問題を理解しているだろう。誰でも上記の行を説明してください。 4〜8行目はどうなりますか?

+2

あなたが投稿しなかったコードの中に失われます。 [mcve]と[ask]をお読みください。 – Yunnosch

+0

'popO'ではなく' popO'ですか? (もしあなたが確信が持てないなら...) ':'と同様に。 –

+0

なぜこのタグが付けられていますか? –

答えて

3

pop0がタイプミスで、pop()の呼び出しであると仮定すると、スタックにプッシュした最後の要素を削除して返します。プログラムに従ってみましょう:

theStack.push(1); 
// 1 is pushed to the stack. The stack now contains [1] 

theStack.push(2); 
// 2 is pushed to the stack. The stack now contains [2, 1] 

theStack.push(3); 
// 3 is pushed to the stack. The stack now contains [3, 2, 1] 

theStack.push(theStack.pop()); 
// 3 is popped, and then pushed back in, so the stack still contains [3, 2, 1] 

theStack.push(theStack.pop() + theStack.pop()); 
// 3 and 2 are popped, added, and pushed back in, so the stack now contains 
// [5, 1] 

theStack.push(6); 
// 6 is pushed to the stack. The stack now contains [6, 5, 1] 

theStack.push(7); 
// 7 is pushed to the stack. The stack now contains [7, 6, 5, 1] 

theStack.push(theStack.pop() * theStack.pop()); 
// 7 and 6 are popped, multiplied, and pushed back in, so the stack now contains 
// [42, 5, 1] 
+0

こんにちはMureinik theStack。 push(theStack.pop()+ theStack.pop()); // 3と2がポップされ、追加され、プッシュバックされるので、今度はスタック には // [5、1]が含まれています(どのように値5を取得しましたか) – Eranka

+0

@Eranka 3 + 2 = 5 :-) – Mureinik