2009-02-08 118 views
1

我在閱讀The C Programming Language,並學習如何使用堆棧製作逆波蘭式計算器。這是下面的練習之一:複製堆棧是什麼意思?

練習4-4。添加命令以打印堆棧的頂層元素而不彈出,複製它,並交換頂部的兩個元素。添加一個命令來清除堆棧。

它們是什麼意思的「重複」?這是否意味着打印出整個堆棧,或將整個堆棧推到自身上(例如,「1 2 3」將成爲「1 2 3 1 2 3」),或者是什麼?

回答

5

不,不重複堆棧,重複「頂部」條目。

所以,如果你的籌碼是:

[1,2,3,4,5], 

你:

[1,2,3,4,5,5]. 

的主題爲 「它」,在這種情況下,是指以 「堆棧的頂部元素」,而不是「堆棧「。

我收集「元素」是一個錯字。

1

在維基百科Stack-oriented programming language條目包含堆棧操作操作的描述:

堆棧操作

由於堆棧是數據處理的一個面向堆棧的編程語言的關鍵手段,往往這些語言提供某種堆棧操作操作符。通常提供的是dup,用於複製堆棧頂部的元素 exch(或swap),以交換堆棧頂部的元素(第一個爲第二個,第二個爲第一個),roll,to在堆棧或部分堆棧中週期性地置換元素,彈出(或放下),放棄堆棧頂部的元素(push is implicit)等。這些成爲研究程序的關鍵。

相關問題