//二叉排序树 插入 (纯C语言实现)
BTNode * BSTInsert2(BTNode *bt,int key){
//为什么纯C语言实现中
if(bt==NULL){ //要写成 bt->rchild=BSTInsert2(bt->lchild,key);
bt = (BTNode*)malloc(sizeof(BTNode)); //而不是直接 BSTInsert2(bt->lchild,key);或者是
bt->lchild =bt ->rchild =NULL; // bt= BSTInsert2(bt->lchild,key); ???????
bt->data = key;
}else if(bt->data>key)
bt->lchild=BSTInsert2(bt->lchild,key); //函数中的形参中(BTNode *bt,int key)的BTNode *bt
else if(bt->data<key) //每次调用都是复制,可以理解为是一个新的树
bt->rchild=BSTInsert2(bt->rchild,key); //没有改变外界的实参bt
return bt;
}

二叉排序树插入C语言版   递归步骤理解-LMLPHP

04-24 19:44
查看更多