【问题标题】:What exactly is an operand stack?究竟什么是操作数栈?
【发布时间】:2015-11-15 16:42:00
【问题描述】:

我一直在自学 Swift。我正在关注斯坦福大学关于 iTunes U 的 iOS 8 Swift Programming 课程。
目前,我正在关注该课程并与教授教授的项目一起工作。这是一个计算器应用程序。他很快就完成了课程。所以他提到了“操作数栈”这个术语。
我没明白是什么意思。那么“操作数栈”究竟是什么意思呢?

谢谢。

【问题讨论】:

标签: stack calculator operands


【解决方案1】:

Paul Hegarty 的例子与所谓的Polish notation 非常相似:

波兰语表示法,也称为波兰语前缀表示法或简称前缀表示法,是逻辑、算术和代数的一种表示法.它的显着特点是将运算符放在操作数的左侧。如果运算符的数量是固定的,则结果是缺少括号或其他括号的语法仍然可以毫无歧义地解析。

唯一的区别是他从上到下写堆栈(就像堆栈一样),而符号意味着从左到右写。

这种方法非常方便编程,因为它不需要我们处理括号和运算符优先级。

【讨论】:

    【解决方案2】:

    您正在实施的计算器是否恰好是 RPN 计算器?

    操作数是要对其执行操作的数字。操作数堆栈是数字的“堆栈”。即一组数字,可以确定这些数字添加到组中的顺序。

    在 RPN 计算器中,您会将操作数(数字)压入堆栈,然后对它们执行一些操作(例如加、减等)

    【讨论】:

    • 所以你的意思是当人们在计算器应用程序中点击一个数字时出现数字的字段,比如 iOS 的计算器应用程序?
    • 你的意思是“RPN”的“反向波兰表示法”吗?
    猜你喜欢
    • 1970-01-01
    • 2014-10-28
    • 2012-08-27
    • 2010-11-12
    • 2011-03-18
    • 2011-01-22
    • 1970-01-01
    相关资源
    最近更新 更多