C语言的一道编程题(关于数据结构的)

将5*6+4*3表达式对应的二叉树存入数组,然后用递归方法创建表达式的对应的二叉树,输出表达式所对应的二叉树的一种遍历结果,并计算表达式的值.
求各位老大们速度帮我解决下哈,小弟感激不尽````````

#include<stdio.h>
#include<stdlib.h>
typedef struct BiTNode
{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;

void CreateBiTree(BiTree &T)
{
char ch;
scanf("%c",&ch);
if(ch==' ') T=NULL;
else
{
T=(BiTNode *)malloc(sizeof(BiTNode));
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
}
void PostOrderTraverse(BiTree T)
{
if(T!=NULL){
PostOrderTraverse(T->lchild);
printf("%2c",T->data);
PostOrderTraverse(T->rchild);
}
}

void main()
{
char ch1,ch2;
printf(" ====================================================\n");
printf("\n 先序创建一棵二叉树,用后序的方法输出\n");
printf("\n ====================================================\n");
BiTree T;
printf(" 请用先序输入一棵二叉树(空格表示为空)\n");
printf(" ");
CreateBiTree(T);
printf(" 中序输出二叉树为:");
PostOrderTraverse(T);
printf("\n");
printf(" 要继续运行程序吗?(Y or N)请选择:");
ch2=getchar();
ch1=getchar();
if(ch1=='y'||ch1=='Y'){
system("cls");
main();
}
if(ch1=='n'||ch1=='N')
exit(1);
}

这是我以前写过的一个程序,这是用先序创建,中序输出的方法!这个程序不包括计算表达式的值!
因为你很着急,所以我没有加上那个功能!你自己改一下吧!
我是在VC++6.0上调试通过的!
注意:输入时,用空格代表元素为空!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-06-17
这在教材中都有的
相似回答