#include
#include
typedef char Element;
int count=1;
struct Data{
Element data;
Data *lchildren,*rchildren;
};
Data *Root;
void init(Data *&p){
p=(Data *)malloc(sizeof(Data));
char m;
printf("读入第%d个元素n",count);
scanf("%c",&m);
getchar();
count++;
if(m!='#'){
p->data=m;
init(p->lchildren);
init(p->rchildren);
}
else{
p=NULL;
}
}
void preOrder(Data *p)
{
if(p){
printf("%c ",p->data);
preOrder(p->lchildren);
preOrder(p->rchildren);
}
}
void backOrder(Data *p)
{
if(p!=NULL){
backOrder(p->lchildren);
backOrder(p->rchildren);
printf("%c ",p->data);
}
}
void middleOrder(Data *p)
{
if(p!=NULL){
middleOrder(p->lchildren);
printf("%c ",p->data);
middleOrder(p->rchildren);
}
}
int main()
{
printf("请你输入树中的元素按照先后顺序n");
printf("请输入元素,当输入#时,会停止读入n");
init(Root);
printf("先序遍历的结果为:n");
preOrder(Root);
printf("n");
printf("后序遍历的结果为:n");
backOrder(Root);
printf("n");
printf("中序遍历的结果为:n");
middleOrder(Root);
return 0;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)