首页 > 编程知识 正文

由中缀表达式求后缀表达式,中缀表达式计算

时间:2023-05-05 11:10:14 阅读:39811 作者:729

骑马订式后缀式

骑马订表达式到后缀表达式的转换规则。

1.

检测到操作数。 直接输入后缀表达式堆栈

2.

遇到运算符后,直接进入运算符堆栈

3.

遇到左括号时:直接放入堆栈

4.

如果有右括号:执行堆栈操作,将堆栈中的元素括在左括号中,并输出左括号,以免输

出来。

5.

遇到其他运算符:加减乘除:弹出所有优先级

大于或等于

运算符的堆栈顶部元素,以及

此运算符进入堆栈

6.

最终依次堆栈操作员堆栈内的要素,输出到后缀式堆栈中。

以下是自己写的代码。 亲测没有问题。

(可以模拟带括号的计算器,并在中心放置空格。 只是

支持整数输入,但输出结果将准确到小数

6

位)

#include'stdio.h '

#defineMAX_LEN

100

typedefstructcal{

unsignedcharisOper; //

是否为操作数

1

、操作员

0.

操作数

双精度编号;

//

框中。 或操作员的

ASCII

价格

}STRUCT_CAL;

#defineIS_NUM

0x00

#defineIS_OPER

0x01

STRUCT_CALstackCal[MAX_LEN];

struct _ calstackcalback [ max _ len ];

unsignedchartopCal;

charstackOper[MAX_LEN];

unsignedchartopOper;

/* * * * * * * * * * * * * * * * * *

*

堆栈初始化

* * * * * * * * * * * * * * * * *

是语音堆栈(语音)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。