#include <stdio.h>
#include <stdlib.h>
typedef struct tree
{
char data;
tree *lchild;
tree *rchild;
} Tr;
Tr *Creattree(Tr *tr)
{
Tr *a,*b;
tr=(Tr*)malloc(sizeof(Tr));
tr->data=0; //树的第一个数值赋值为0
a=tr;
a->rchild=NULL;
for(int i=1;i<9;i++) //用一个循环给接下来的子树赋值
{
b=(Tr*)malloc(sizeof(Tr));
b->data=i*i;
b->rchild=NULL;
a->lchild=b;
a=b;
}
a->lchild=NULL;//必须的,不然要出错
return tr;
}
void fsearch(Tr *tr)
{
if(tr==NULL)
return ;
else
{
printf("%d/n",tr->data); //先序遍历每个结点的值
fsearch(tr->lchild);
fsearch(tr->rchild);
}
}
int main()
{
Tr *a;
a=Creattree(a);
fsearch(a);
return 0;
}
输出结果:0 1 4 9 16 25 36 49 64
这个二叉树相当的简单了,以至于我都怀疑自己编写的是一个双链表,呵呵。有兴趣的可以试试看。