利用二叉树求表达式的值,首先要注意表达式中先乘除后加减的运算顺序,所以在建立树的过程中,就要将加减尽量作为根节点,最后一个加减号作为根节点。建完树之后是运算过程,采用树的后序遍历来运算。
二叉树的节点结构,其中值的类型用char型
struct node { char data; node* left; node* right; };
node *CRTree(char s[],int begin,int end) { node *p; int k,plus=0,posi; if (begin==end) //只有一个字符,构造的是一个叶子节点 { p=(node *)malloc(sizeof(node)); //分配存储空间 p->data=s[begin]; //值为s[begin] p->left=NULL; p->right=NULL; return p; }