- 8
- 0
- 约1.51万字
- 约 22页
- 2020-06-20 发布于浙江
- 举报
c语言-数据结构-两种方式计算表达式
精品文档
精品文档
收集于网络,如有侵权请联系管理员删除
收集于网络,如有侵权请联系管理员删除
精品文档
收集于网络,如有侵权请联系管理员删除
一、设计思想
计算表达式有两种方式,第一种是先算后缀表达式,再计算结果,第二种是直接计算中缀表达式求值,下面介绍两种方式的设计思想。
(1)先算后缀表达式,再计算结果。程序先定义了两个栈odlist和oplist,分别用作数字栈和运算符栈,并用指针*od和*op访问这两个栈,同时定义两个栈的入栈、出栈和看栈顶的函数,再定义一个判断是否是操作符的函数int is_op()、一个比较运算符优先级的函数int level()和计算两个数字运算结果的函数double re()。
主函数中定义字符型的数组inorder[100]和postorder[100]分别用于存放中缀表达式和转换后的后缀表达式,整型的inpos和postpos分别表示中缀表达式的扫描索引和后缀表达式的扫描索引。
然后进行中缀表达式转换为后缀表达式。用while循环扫描inorder[100]数组,如果是数字字符,直接将其逐个复制给postorder[postorder++],并在最后加一个空格用于和下一个数字区分;如果是运算符,此运算符优先级比op栈栈顶优先级大时直接入栈,否则将op栈栈顶取出放入postorder[postorde
原创力文档

文档评论(0)