二叉树怎么递归建立???
书上看到的二叉数建立是递归创建左子,再递归右子。可我现在的树 2
1 4
3 0 5 7
9 6
输入为 2 1 4 3 0 5 7 9 6 -1;
0表示没该节点,-1 表示输入结束。
怎样用递归建立上述二叉数。。。。
BiTree CreateBiTree(BiTree T) { // 按先序次序输入二叉树中结点的值(假设为int类型) //构造二叉链表表示的二叉树T,结点值为int型,0表示空(子)树 int num; scanf("%d",&num); if(0 == num) // 空 T=NULL; else { T=(BiTree)malloc(sizeof(BiTNode)); if(!T) exit(0); T->data = num; // 生成根结点 printf("请输入结点%d的左子结点: ",T->data); T->lchild = CreateBiTree(T->lchild); // 构造左子树 printf("请输入结点%d的右子结点: ",T->data); T->rchild = CreateBiTree(T->rchild); // 构造右子树 } return T; }