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

📄 tree.cpp

📁 表达式类型的实现: 1、 一个表达式和一颗二叉树之间
💻 CPP
字号:
// tree.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "fun.h"
#include "stdlib.h"
char b[40];
char a[80];
int k;

int main()
{	Tree E;
	int flag=1,j,s;char ch,c;
	InitTree(E);
	while(flag){
		system("cls");//清屏
		printf("\n输入数字选择以下操作:\n");
		printf("\n 0 退出 \n 1 输入表达式 \n 2 中缀表示式输出表达 \n 3 对表达式中的变量赋值 \n 4 表达式E求值 \n 5 构造复合表达式 \n");
		fflush(stdin);//刷清文件缓冲区的内容
        ch=getchar();
		switch(ch){
		case '0':
			flag=0;break;
		case '1':
			ReadExpr(E);
			printf("\n按任意键继续....");
			fflush(stdin);
			getchar();
			break;
		case '2':
			if(!E) printf("\n表达式为空!");
			else {printf("\n表达式为:"); WriteExpr(E);}
			printf("\n按任意键继续....");
			fflush(stdin);
			getchar();
			break;
		case '3':
			printf("表达式为:");
			WriteExpr(E);
			c='a';
			for(j=0;b[j]!='\0';){
				printf("\n请对变量 %c 赋值 :",b[j]);
				fflush(stdin);//刷清文件缓冲区的内容
				c=getchar();
				if(c>='0'&&c<='9'){
					Assign(E,b[j],c);
					j++;
				}
			}
			printf("\n按任意键继续....");
			fflush(stdin);
			getchar();
			break;
		case '4':
			s=Value(E);	
			WriteExpr(E);
			printf(" = %d",s);
			printf("\n按任意键继续....");
			fflush(stdin);
			getchar();
			break;
		case '5':
			char P;Tree E1,E2;
			InitTree(E1);
			InitTree(E2);
			do{
				printf("输入复合表达的连接符号P:");
				fflush(stdin);
				P=getchar();
			}while(P!='+'&&P!='-'&&P!='*'&&P!='/'&&P!='^');
			E=CompoundExpr(P,E1,E2);
			printf("\n按任意键继续....");
			fflush(stdin);
			getchar();
			break;
		default:break;
		}
	}

	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -