📄 main.cpp
字号:
#include <stdio.h>
#include <stdlib.h>
#include "expression.h"
int main()
{
int chose,c;
int result;
BiTree E1,E2,E;
char V;
while(1){
printf("\n--------------------------------------------------------------------------\n"
"1、ReadExpr-------输入前缀表达式\n"
"2、WriteExpr-------输出表达式\n"
"3、Assign-------变量赋值\n"
"4、Value-------表达式求值\n"
"5、CompoundExpr-------复合表达式构造\n"
"6、ValueExpr-------对复合表达式进行求值\n"
"7、Destroy-------要重新读入表达式时请先释放内存空间\n"
"8、MergeConst-------合并常数项操作\n"
"9、exit-------退出程序\n"
"\n■请选择要进行的操作: ");
fflush(stdin);
scanf("%d",&chose);
printf("--------------------------------------------------------------------------\n");
switch(chose)
{
case 1:fflush(stdin);
printf("\n■请输入中缀表达式:");
ReadExpr(E);
break;
case 2:printf("\n■表达式展开形式为:");
WriteExpr(E);
printf("\n");
break;
case 3:while(1)
{
printf("\n■请输入要进行赋值的变量V=");
fflush(stdin);
scanf("%c",&V);
printf("\n■请输入要赋值的值c=");
fflush(stdin);
scanf("%d",&c);
Assign(E,V,c);
printf("\n■是否继续进行变量赋值(y or n): ");
fflush(stdin);
chose=getchar();
if(chose=='n')
break;
}
break;
case 4:result=Value(E);
printf("\n■进行运算的表达式为:");
WriteExpr(E);
printf("\n\n■表达式的运算结果 result=%d\n",result);
break;
case 5:char p;
printf("\n■请输入要进行的复合运算符: ");
fflush(stdin);
p=getchar();
printf("\n■请输入要进行复合操作的第一棵树的中缀表达式: ");
fflush(stdin);
ReadExpr(E1);
printf("\n■请输入要进行复合操作的第二棵树的中缀表达式: ");
fflush(stdin);
ReadExpr(E2);
E=CompoundExpr(p,E1,E2);
printf("\n■复合表达式展开形式为:");
WriteExpr(E);
break;
case 6:result=Value(E);
printf("\n■复合运算的运算结果 result=%d\n",result);
break;
case 7:DestroyExpr(E);
break;
case 8:MergeConst(E);
printf("\n■合并常数项后的表达式为:");
WriteExpr(E);
break;
case 9: exit(0);
default:printf("\n■请选择真确的操作编码!\n");
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -