教我一下这个递归的执行顺序吧
#include <stdio.h>typedef struct btnode
{
int data;
struct btnode *lchild;
struct btnode *rchild;
}BINTNODE, *BINTREE; /*定义二叉链表指针类型*/
void createbintree(BINTREE *t)
{
int a;
scanf("%d",&a);
if(a==0)
*t=NULL;
else
{
*t=(BINTNODE*)malloc(sizeof(BINTNODE));
(*t)->data=a;
createbintree(&(*t)->lchild);
createbintree(&(*t)->rchild);
}
} /* 不明白这个递归在传入 0 后是怎么执行的
教一下 输入 1 2 4 0 0 5 0 0 3 0 6 0 0 (回车) 的执行顺序
像这样 :
输入1 (*t)->data=1;
输入2 (*(*t)->lchild))->data=2
输入4 (*((*t)->lchild)->lchild)->lchild)->data=4
可能举例有错 反正就是这意思啦 */
main() /*主函数*/
{ BINTREE t=NULL;
printf("\nPlease input nodes of BINTREE : ");
createbintree(&t);
printf("ok!\n");
getch();
}