首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Infix与后缀

Infix与后缀
EN

Stack Overflow用户
提问于 2010-08-14 03:36:08
回答 3查看 6.6K关注 0票数 5

昨天的面试中有这个问题。哪一种更好用?插入(带括号)还是后缀?有理由的状态..。

我只能告诉他们:

  1. 编译器更容易处理用于算术计算和操作符优先级的后缀表达式。
  2. 更多的内存用于存储和处理括号。

请说明一下我在这件事上是否正确?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-14 03:39:49

后缀不需要任何操作符驱动的操作顺序;它总是显式的。所以对于基于堆栈的编译器来说,它很容易实现,对于人类来说,很容易理解操作的顺序。

另一方面,infix并不要求您阅读结尾的所有动词:-P。人类使用的是内写,甚至前缀;“添加A到B”比"A和B:添加它们“更有意义。

但是,这个问题基本上是主观的。后缀将永远是更好的计算机系统,但infix有它的优点。

票数 8
EN

Stack Overflow用户

发布于 2010-08-14 03:37:46

记忆在这里通常不是问题。编译器在其他事情上花费了大量的内存。后缀通常包含一个操作数堆栈,它在运行时涉及到一定数量的内存(仍然很小)。

后缀对于低级别的可解释代码非常有用,例如Java、Forth、Postscript.它们都有硬件或超轻量级的软件实现。

Infix具有较好的可读性。

当然,如果不知道这是一份什么样的工作,就不可能知道这个问题是如何影响你的领域的。

票数 1
EN

Stack Overflow用户

发布于 2010-09-09 06:35:09

前缀、后缀和前缀之间的相似之处:

操作数的

  • 顺序在三个符号中是相同的(但是操作符的顺序改变了,因此名称也改变了)

Infix、后缀和前缀之间的区别:

  • Infix的可读性更强。这就是为什么它在数学书籍中非常常用的原因。
  • Infix必须添加更多的信息来消除歧义。因此,例如,我们使用括号优先于低优先级运算符,但在后缀中我们有运算符的顺序。(正如@EJP所提到的,here
  • Postfix和前缀更具机器可读性。例如,在后缀中,每次遇到一个数字,将其放在堆栈中,每次遇到运算符时,从堆栈中弹出最后两个元素,应用该操作并将结果推回。

谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3481902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档