1. 程式人生 > >二叉排序樹插入C語言版 遞歸步驟理解

二叉排序樹插入C語言版 遞歸步驟理解

pan 形參 排序樹 tno btn 排序 all png spa

 1 //二叉排序樹 插入 (純C語言實現)
 2 BTNode * BSTInsert2(BTNode *bt,int key){
 3                                                       //為什麽純C語言實現中
 4     if(bt==NULL){                                     //要寫成 bt->rchild=BSTInsert2(bt->lchild,key);
 5         bt = (BTNode*)malloc(sizeof(BTNode));         //而不是直接 BSTInsert2(bt->lchild,key);或者是
6 bt->lchild =bt ->rchild =NULL; // bt= BSTInsert2(bt->lchild,key); ??????? 7 bt->data = key; 8 }else if(bt->data>key) 9 bt->lchild=BSTInsert2(bt->lchild,key); //函數中的形參中(BTNode *bt,int key)的BTNode *bt 10 else if(bt->data<key) //
每次調用都是復制,可以理解為是一個新的樹 11 bt->rchild=BSTInsert2(bt->rchild,key); //沒有改變外界的實參bt 12 return bt; 13 }

技術分享圖片

二叉排序樹插入C語言版 遞歸步驟理解