[键入文字] [键入文字] [键入文字]
}
char ch; cin>>ch;
if(ch=='Y'||ch=='y') { } else { } }
system(\);
x=2; x=1;
六、运行结果:
这个是一开始运行的情况。
-19-
[键入文字] [键入文字] [键入文字]
输入完表达式后会判断表达式是否正确,如果正确会输出“表达式正确”,错误会输出“表达式错误”。
正确的情况下会输出结果,选择是否继续计算
输入y或者Y都会进行下一次运算
-20-
[键入文字] [键入文字] [键入文字]
结果仍然正确。
接下来测试如果输入错误的表达式会怎么样。
输入的表达式有错误,判断出错误后选择是否继续
任意输入不是y或者Y的字符,退出程序。
七、实验运行情况分析 1.算法:
定义字符串exp用来存储后缀表达式,每个数字之间间隔一个空格用以区分数字。
-21-
[键入文字] [键入文字] [键入文字]
调用堆栈ope来存放依次输入的操作符,如果输入的操作符运算优先级高于栈顶运算符,那么进栈。反之出栈直至当前运算符运算优先级高于栈顶运算符,将当前运算符进栈。如果遇到左括号“(”,直接进栈。如果遇到右括号“)”,一直出栈直到遇到左括号。将出栈的运算符依次加到exp中。
调用堆栈number,用来存放后缀表达式中出现的数字。每当遇到一个操作符的时候,便取出堆栈中的两个数字放在运算符右边和左边进行计算,将计算结果继续进栈存入number中。
利用堆栈先进后出的特点实现表达式的转换和求值。 2.运行结果:
(1).程序能够正确算出表达式的值。
(2).程序能够判断输入的表达式是否符合标准。 (3).程序能够进行多次运算。 3.运行环境:
该程序对运行环境要求较低,在VC++6.0及以上版本的编译软件
上可以运行。
参考文献
[1]唐宁九.数据结构与算法(C++版)清
华大学出版社,2009年
[2]唐宁九.数据结构与算法(C++版)实
验和课程设计教程 清华大学出版社,2008年
-22-
相关推荐: