- 2
- 0
- 约7千字
- 约 51页
- 2019-11-03 发布于天津
- 举报
-1 栈底 栈顶 1 计算1-2结果为-1,-1入栈 如何实现计算器? 5 4 栈底 栈顶 -1 5 4 栈底 栈顶 -1 读到+运算符从堆栈中取两个操作数 如何实现计算器? 9 栈底 栈顶 -1 计算4+5,结果9入栈 如何实现计算器? 9 栈底 栈顶 -1 读到*运算符,从堆栈中取两个操作数 如何实现计算器? 栈底 栈顶 -9 计算9*-1.结果-9入栈 如何实现计算器? 伪代码如下: while(下一个运算符或运算分量不是文件结束指示符EOF) if(是运算分量) 将该运算分量压入堆栈中 else if(是运算符) { 弹出所需数目的运算分量 执行运算 将结果压入堆栈 } else if(是换行符) 弹出并打印栈顶的值 else 显示出错信息 逆波兰表达式计算 入栈和出栈函数分别为push()和pop() #define MAXVAL 100 /*堆栈的最大长度*/ int sp=0; /*栈顶指针位置*/ double val[MAXVAL]; /*堆栈*/ /*入栈函数:将f压入堆栈*/ void push(double f) { if (spMAXVAL) val[sp++]=f; else printf(“error: stack full, can’t push
原创力文档

文档评论(0)