骑马订式后缀式
骑马订表达式到后缀表达式的转换规则。
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;
/* * * * * * * * * * * * * * * * * *
*
堆栈初始化
* * * * * * * * * * * * * * * * *
是语音堆栈(语音)