题目:编写一个程序,先用二叉树来表示代数表达式,树的每一个结点包括一个运算符或者运算数,代数表达式中只包含加减乘除和一位整数且没有错误,并按先加减后乘除的原则构造二叉树,然后由对应的二叉树计算该表达式的值。 #include<stdio.h> //程序缺陷:4/5这样的浮点结果不能正确计算.待改进. //仔细分析有代表性的实例,发现规律. typedef struct node // 结点类型定义 { char data; struct node *lchild; struct node *rchild; }BTNode; BTNode *create(char *str,int n) // 创建代数表达式对应的二叉树 { BTNode *root = NULL; //始终指向当前已经生成的二叉树的根 BTNode *p = NULL; //始终指向当前待处理结点 char ch; int j = 0; ch = str[j]; while(ch!='/0' && j < n) { switch(ch) { case '0': //数字的处理 case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': p = new BTNode; p->data = ch; if(root == NULL) root = p; else if(root->rchild =