代写C语言、C++、Java、Python、HTML、JavaScript、vue、MySQL相关编程作业,
长期接单,信誉有保证,标价10-20每份,如有需要请加文章末尾QQ。
本文资源:https://download.csdn.net/download/weixin_47040861/89276163
1.题目要求
实验名称:计算表达式
实验内容:设计一个程序,把中缀表达式转换成- -棵二叉树, 然后通过后根遍历计算表达式的值。
实验目的与要求:对于输入的一-个中缀表达式,判断表达式是否合法。
如果合法,把中缀表达式转换成- -棵二叉树,然后通过后根遍历计算表达式的值,输出运算结果。
合法表达式不能为空,可以出现在表达式中的字符有:
(1) 运算符“+”、“-”、“*”、“/”;
(2)左右括号“(”、“)” ;
(3)整数(可以是多位的);
(4)空格符和制表符。
例如:表达式为“20+(3*(4+46)-6) / 2-134"将得到结果-42。
数据结构采用二叉树的链接表示。
2.视频演示
【C++数据结构期末/课程设计】中缀表达式计算案例(详细注释/vc2010项目)
3.项目介绍
项目内部有详细的注释解释各部分的功能,这里不再赘述,只说说项目的基本流程:
项目主函数:
int main() {
while(true){
string expr;//声明字符串变量用于存储存储输入的计算公式
cout << "请输入一个中缀表达式:";
getline(cin, expr);//获取公式
expr=removeSpaces(expr);//移除空格和制表符
if(!isValidInfixExpression(expr)){//判断公式格式是否合法
continue;//若不合法则跳过此次二叉树创建
};
TreeNode* root = createExpressionTree(expr);//调用函数创建二叉树并返回头结点
cout << "中序遍历结果为:" <<evaluateExpression(root)<< endl;//调用函数计算结果并打印
}
return 0;
}
项目流程:
1.在主函数中使用while循环来保证窗口持续存在,并处理多个计算公式的输入
2.在while循环中首先创建字符串用于接收输入的中缀表达式
3.由于题目要求中允许输入空格和制表符,但是这两种字符并不直接参与运算,所以要先调用removeSpaces()函数移除表达式中的空格和制表符,然后返回移除后的结果
4.然后调用isValidInfixExpression()函数判断表达式格式是否正确,包括长度是否合格、开头和末尾是否为运算符、连续的非数字字符格式是否正确等,若不正确则提示,然后跳过此次运算
5.接下来调用createExpressionTree()函数将中缀表达式转换为二叉树
6.然后调用evaluateExpression()函数计算生成的二叉树的计算结果并打印
↓如对项目有任何问题或需要,请加下方QQ↓