计算机考研 408 数据结构 中缀转后缀

方法1

将中缀表达式画括号,然后将符号移到对应括号外,去掉所有括号

如:a/b+(c*d-e*f)/g

  • ((a/b) + (((c*d) - (e*f))/g))
  • ab/cd*ef*-g/+

方法2

将中缀表达式转换为后缀表达式的算法思想如下:

初始化一个 操作符栈,从左向右开始扫描中缀表达式;

  • 遇到数字时,加入后缀表达式;
  • 遇到运算符时:
    • 若为 ,入栈;
    • 若为 ,则依次把栈中的运算符加入后缀表达式中,直到出现 ,从栈中删除
    • 若为除括号外的其他运算符
      • 当其 优先级 高于栈顶运算符时,直接入栈;
      • 否则从栈顶开始,依次弹出 优先级 高于或等于当前运算符的运算符,直到遇到 优先级 更低的运算符或左括号为止。
相关推荐
phltxy8 小时前
C语言操作符详解
java·c语言·算法
aqiu1111118 小时前
【LeetCode 902】最大为 N 的数字组合 - 详细题解与数位组合思路
数据结构·算法·leetcode·蓝桥杯·数位dp
辰烨chenye9 小时前
LeetCode Hot 100 题解 · 哈希篇
算法·leetcode·哈希算法
罗西的思考9 小时前
DreamZero 与 DreamDojo:世界模型与策略的分层协同综合分析与对比
人工智能·算法·机器学习
玖玥拾10 小时前
LeetCode 219 存在重复元素 II
算法·leetcode·哈希算法·散列表
知无不研11 小时前
c语言中循环的介绍与简单应用
c语言·开发语言·算法·循环·for·while
a1879272183112 小时前
【算法】动态规划第四篇:背包收官——min 哨兵、计数世界与组合排列分水岭
算法·leetcode·动态规划·dp·01背包·算法讲解·决策合并
2601_9622974812 小时前
在python3中、下列输出变量a的正确写法是_2020超星大数据Python免费答案
数据结构·python·算法·编程·字符串操作
辰烨chenye12 小时前
LeetCode Hot 100 题解 · 子串篇
算法·leetcode·职场和发展