数据结构(使用C语言)问题
答案:2 悬赏:10 手机版
解决时间 2021-02-18 23:48
- 提问者网友:人傍凄凉立暮秋
- 2021-02-18 01:13
画出借助堆栈把下列中缀表达式转换成后缀表达式的过程:A*(B-D)+E/F
最佳答案
- 五星知识达人网友:舍身薄凉客
- 2021-02-18 02:27
首先得知道中缀转后缀的方法,那就是从左到右开始操作数直接输出,然后运算符进栈。。进栈时注意运算符的优先级,置于优先级自行看课本或者百度了解。
A*(B-D)+E/F
栈:*(-)
输出:ABD
此时,出现有括号,要将括号的运算符输出;
栈:*
输出:ABD-
因为+优先级小于*,因此*要输出,然后+进栈;
栈:+
输出:ABD-*E
因为/优先级大于+所以/进栈;
栈:+/
输出:ABD-*EF
左后输出栈中元素,注意,栈的出栈是FILO;
栈:
输出:ABD-*EF/+;
至于准确性,你可以用后缀转中缀的方式检验,就是在后缀表达式中从左到右开始,遇到运算符就提取他前面的两个操作数进行运算。
A*(B-D)+E/F
栈:*(-)
输出:ABD
此时,出现有括号,要将括号的运算符输出;
栈:*
输出:ABD-
因为+优先级小于*,因此*要输出,然后+进栈;
栈:+
输出:ABD-*E
因为/优先级大于+所以/进栈;
栈:+/
输出:ABD-*EF
左后输出栈中元素,注意,栈的出栈是FILO;
栈:
输出:ABD-*EF/+;
至于准确性,你可以用后缀转中缀的方式检验,就是在后缀表达式中从左到右开始,遇到运算符就提取他前面的两个操作数进行运算。
全部回答
- 1楼网友:渊鱼
- 2021-02-18 03:01
编程者都会出现迷茫的时候,开始学习的时候不太明白高手会是什么样子!但是,学习都是一个循序渐进的过程。对于学习c语言我认为就是为了更好的掌握语言编程的技巧。而不是单纯的学习很复杂的算法。因为现在的编程都是使用一些封装好的算法和数据结构来编程的。对于c语言来说有很多时候是语言的入门必学的语言。
另外对于c语言的应用的方面,我觉得学要学实用的东西。如果说学了很多东西也许最后什么都不知道,最重要的是方法。多看看那种编程的思路方面的书籍,比如经典的程序例子多实践一下。对于书籍来说,每个人的学习方法不同;所以就算推荐了,也不一定合适你。可以去书店看看,好好的找到一种适合自己的书最好。同时也希望能够从编程中找到乐趣。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯