表达式树的创建
#include<stdio.h> #include<stdlib.h> typedef struct BiTNode { char date[4]; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; int creB(BiTree &Q) { Q=new BiTNode; if(~scanf("%s",Q->date)&&Q->date[0]!='#') { if(Q->date[0]=='#') Q=NULL; else { creB(Q->lchild); creB(Q->rchild); } return 1; } Q=NULL; return -1; } void priB(BiTree Q) { if(Q==NULL) return; if(Q->date[0]=='/'||Q->date[0]=='*'||Q->date[0]=='-'||Q->date[0]=='+') { printf("("); priB(Q->lchild); printf("%s",Q->date); priB(Q->rchild); printf(")"); } else printf("%s",Q->date); } int main() { BiTree Q; while(creB(Q)==1) { priB(Q); printf("\n"); } return 0; }