⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 本程序实现的是以树型方式存储的表达式的各种操作
💻 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 + -