赞
踩
#include<stdio.h>
#include<malloc.h>
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;
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。