expr.h

来自「实现基于二叉树表示的算术表达式Expression的操作」· C头文件 代码 · 共 88 行

H
88
字号
#include"BiTree.h"
status ReadExpr(BiTree &T)
{
	printf("请输入先序表达式:\n");
	scanf("%s",a);
    if(Creat(T)) return 1;
}

void WriteExpr(BiTree T)
{
int r=0;int l=0;
if (T)
{
if(T->lchild)
{
if (Sign(T->lchild->data)&&
(Precede(T->data,T->lchild->data)))
{
l=1;printf("(");
}
WriteExpr(T->lchild);
if(l) printf(")"); 
}

if(T->data=='#') printf("%d",T->nu);
else printf("%c",T->data);
if(T->rchild)
{
if (Sign(T->rchild->data)&&(Precede(T->data,T->rchild->data)))
{
r=1;
printf("(");
}
WriteExpr(T->rchild);
if (r) printf(")"); 
}

}
}



status Assign(BiTree &T)
{
   char a;
   if(T){
       if(Letter(T->data))
	   {printf("请给%C赋值:\n",T->data);
	      fflush(stdin);
          a=getchar();
		  T->data='#';
          T->nu=a-48;
          return 1;
	   }
   else
   {
         Assign(T->lchild);
         Assign(T->rchild);
   }
        return 1;
   }
  return 1;
}
void Change(BiTree &T)
{
	if(T!=NULL){
	if(Num(T->data)){T->nu=T->data-48;T->data='#';}
	Change(T->lchild);Change(T->rchild);}
}
status Value(BiTree &T)
{

int i;
for(i=0;i<7;i++)
{
   Caclue(T);
 }
printf("%d",T->nu);return 1;
}
BiTree CompoundExpr(char P,BiTree T1,BiTree T2)
{
BiTree T;
if (!(T=(BiTNode *)malloc(sizeof (BiTNode)))) return 0;
T->data=P;
T->lchild=T1;T->rchild=T2;
return T;
}

⌨️ 快捷键说明

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