#include<stdio.h>
#include<stdlib.h>
typedef struct _NODE{
int data;
struct _NODE* left;
struct _NODE* right;
}*pNODE,NODE;
static int a[15]={6,4,3,0,0,5,0,0,8,7,0,0,9,0,0}; //其中0是所有的“叶子节点”此处的叶子节点只为了判断函数返回。
int i=-1;
void CreateTree(pNODE &T) //创建二叉树
{
i++;
if( 0 == a[i])
{
return;
}
else
{
T=(NODE*)malloc(sizeof(NODE));
T->data=a[i];
CreateTree(T->left); //左递归,意味着,父节点左边所有节点设置好之后才能设置右节点
CreateTree(T->right);
}
}
int main(void)
{
pNODE T;
CreateTree(T);
//输出节点信息;
printf("T->data=%d\n",T->data);
printf("T->left->data=%d\n",T->left->data);
printf("T->left->left->data=%d\n",T->left->left->data);
printf("T->left->right->data=%d\n",T->left->right->data);
printf("T->right->data=%d\n",T->right->data);
printf("T->right->left->data=%d\n",T->right->left->data);
printf("T->right->right->data=%d\n",T->right->right->data);
return 0;
}
二叉树:
6
4 8
3 5 7 9
0 0 0 0 0 0 0 0