【发布时间】:2015-11-15 16:42:00
【问题描述】:
我一直在自学 Swift。我正在关注斯坦福大学关于 iTunes U 的 iOS 8 Swift Programming 课程。
目前,我正在关注该课程并与教授教授的项目一起工作。这是一个计算器应用程序。他很快就完成了课程。所以他提到了“操作数栈”这个术语。
我没明白是什么意思。那么“操作数栈”究竟是什么意思呢?
谢谢。
【问题讨论】:
标签: stack calculator operands
我一直在自学 Swift。我正在关注斯坦福大学关于 iTunes U 的 iOS 8 Swift Programming 课程。
目前,我正在关注该课程并与教授教授的项目一起工作。这是一个计算器应用程序。他很快就完成了课程。所以他提到了“操作数栈”这个术语。
我没明白是什么意思。那么“操作数栈”究竟是什么意思呢?
谢谢。
【问题讨论】:
标签: stack calculator operands
Paul Hegarty 的例子与所谓的Polish notation 非常相似:
波兰语表示法,也称为波兰语前缀表示法或简称前缀表示法,是逻辑、算术和代数的一种表示法.它的显着特点是将运算符放在操作数的左侧。如果运算符的数量是固定的,则结果是缺少括号或其他括号的语法仍然可以毫无歧义地解析。
唯一的区别是他从上到下写堆栈(就像堆栈一样),而符号意味着从左到右写。
这种方法非常方便编程,因为它不需要我们处理括号和运算符优先级。
【讨论】:
您正在实施的计算器是否恰好是 RPN 计算器?
操作数是要对其执行操作的数字。操作数堆栈是数字的“堆栈”。即一组数字,可以确定这些数字添加到组中的顺序。
在 RPN 计算器中,您会将操作数(数字)压入堆栈,然后对它们执行一些操作(例如加、减等)
【讨论】: