复制堆栈意味着什么?

时间:2009-02-08 07:33:23

标签: c stack

我正在阅读 C编程语言,并学会了如何使用堆栈制作反向波兰语计算器。以下是其中一个练习:

  

练习4-4。添加命令以打印堆栈的顶部元素而不会弹出,复制它,以及交换顶部   两个要素。添加命令以清除堆栈。

“复制”是什么意思?是打算打印出整个堆栈,还是将整个堆栈推到自身上(例如,“1 2 3”会变成“1 2 3 1 2 3”),还是什么?

2 个答案:

答案 0 :(得分:5)

不,不重复堆叠,复制“顶部”条目。

所以如果您的筹码是:

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

你得到:

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

在这种情况下,主题“it”指的是“堆栈的顶部元素”,而不是“堆栈”。

我收集“元素”是一个错字。

答案 1 :(得分:1)

Wikipedia中的Stack-oriented programming language条目包含堆栈操作操作的描述:

  

堆栈操作

     

由于堆栈是面向堆栈的编程语言中数据操作的关键手段,因此这些语言通常提供某种堆栈操作操作符。通常提供的是 dup,复制堆栈顶部的元素,exch(或交换),以交换堆栈顶部的元素(第一个成为第二个,第二个成为第一个),滚动,循环地置换堆栈中或堆栈的一部分上的元素,弹出(或丢弃),丢弃堆栈顶部的元素(push是隐含的),以及其他元素。这些成为学习程序的关键。