中缀表达式转换成后缀表达式(只适用于加减乘除运算)

 

 

复制代码
 1 #include <iostream>
 2 #include <stack>
 3 #include <cctype>
 4 
 5 using namespace std;
 6 
 7 //获取符号的优先级
 8 int getPriority(char c)
 9 {
10     int priority = -1;
11     switch (c) {
12     case '+':
13         priority = 1;
14         break;
15     case '-':
16         priority = 1;
17         break;
18     case '*':
19         priority = 2;
20         break;
21     case '/':
22         priority = 2;
23         break;
24     case '(':
25         priority = 3;
26         break;
27     default:
28         break;
29     }
30     return priority;
31 }
32 
33 
34 int main()
35 {
36     char c;
37     stack<char> s;
38     cin >> c;
39     while (c != '#')
40     {
41         while (isdigit(c))
42         {
43             cout << c;
44             cin >> c;
45             if(!isdigit(c) && c != '#')
46                 cout << ' ';
47 
48         }
49         if (c == ')')
50         {
51             //1.弹出元素并输出直到'('
52             while (s.top() != '(')
53             {
54                 cout << s.top() << ' ';
55                 s.pop();
56             }
57             //2.将"("也出栈
58             s.pop();
59         }
60         else
61         {
62             // 下面是普通操作符的情况
63             // 1.弹出栈元素直到发现优先级更低的元素
64             while (!s.empty() && getPriority(c) <= getPriority(s.top()) && s.top() != '(')
65             {
66                 cout << s.top() << ' ';
67                 s.pop();
68             }
69             //将本操作符入栈
70             s.push(c);
71         }
72         cin >> c;
73     }
74     while (!s.empty())
75     {
76         cout << s.top() << ' '  ;
77         s.pop();
78     }
79     cout << endl;
80     return 0;
81 }
复制代码

 

posted @   拾月凄辰  阅读(521)  评论(1编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示
主题色彩