这里写自定义目录标题
#树的先序遍历
10位数字构成的树通过层次发构建成数,然后通过先序的方式进行输出。
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#define max 10
typedef struct love
{
char data;
struct love *lchild,*rchild;
}king;
king *tree(void)
{
king *T,*p,*s[max];
char ch;
int i,j;
while(1)
{
scanf("%d",&i);
if(i==0)break;
else
{
ch=getchar();
p=(king *)malloc(sizeof(king));
p->data=ch;
p->lchild=p->rchild=NULL;
s[i]=p;
if(i==1)T=p;
else
{
j=i/2;
if(i%2==0)
{s[j]->lchild=p;}
else
{s[j]->rchild=p;}
}}
}return (T);
}
void put(king *T)
{
king *a[max],*p=T,*q;
int top=0;
if(T==NULL)printf("end");
else{
do
{
printf("%c",p->data);
q=p->rchild;
if(q!=NULL)
a[++top]=q;
p=p->lchild;
if(p==NULL)
{
p=a[top];top--;
}
}
while(p!=NULL);}
}
main()
{
king *T=NULL;
printf("输");
T=tree();
printf("输出");
put(T);
return 0;
}