我正在阅读 C编程语言,并学会了如何使用堆栈制作反向波兰语计算器。以下是其中一个练习:
练习4-4。添加命令以打印堆栈的顶部元素而不会弹出,复制它,以及交换顶部 两个要素。添加命令以清除堆栈。
“复制”是什么意思?是打算打印出整个堆栈,还是将整个堆栈推到自身上(例如,“1 2 3”会变成“1 2 3 1 2 3”),还是什么?
答案 0 :(得分:5)
不,不重复堆叠,复制“顶部”条目。
所以如果您的筹码是:
[1,2,3,4,5],
你得到:
[1,2,3,4,5,5].
在这种情况下,主题“it”指的是“堆栈的顶部元素”,而不是“堆栈”。
我收集“元素”是一个错字。
答案 1 :(得分:1)
Wikipedia中的Stack-oriented programming language条目包含堆栈操作操作的描述:
堆栈操作
由于堆栈是面向堆栈的编程语言中数据操作的关键手段,因此这些语言通常提供某种堆栈操作操作符。通常提供的是 dup,复制堆栈顶部的元素,exch(或交换),以交换堆栈顶部的元素(第一个成为第二个,第二个成为第一个),滚动,循环地置换堆栈中或堆栈的一部分上的元素,弹出(或丢弃),丢弃堆栈顶部的元素(push是隐含的),以及其他元素。这些成为学习程序的关键。