[問題] binary search
我想透過binary search 找出正確的節點
然後把data 插入 binary search tree 裡
這是我拙劣的程式碼@@~
treepointer* travel(treepointer *root, int k)
{
if( k < root->key){
if(root->left == NULL) // 左節點空了 又想插入的k 小於 parent
return root;
else
return travel(root->left,k);
}
if( k > root->key){
if(root->right == NULL)// 右節點空了 想插入的k 大於parent
return root;
else
return travel(root->right,k);
}
}
我的想法是從原有的 BST 的ROOT開始
要是要讀的序列數比ROOT小 就往左邊結點移到下一個SUBTREE
然後繼續做一樣的事
直到如果讀的序列數小於parent 又左邊已經是null 沒有下個結點了
所以這個數應該要插在這個NULL的地方
所以再插入前都用travel跑一次應該要插入在哪個節點
再用linklist 指過去
不過會遇到問題是
要讀的序列像 5 7 9 3 1 8
應該要是
5
3 7
1 9
8
就變成 8 會在 9 的右邊 @@
如果自己在改一下序列的數字總會有類似的問題
想請問一下是不是我的TRAVEL的想法有錯
還是我程式達不到我想要做的?
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.118.30
推
11/15 03:18, , 1F
11/15 03:18, 1F
→
11/15 03:18, , 2F
11/15 03:18, 2F
→
11/15 03:20, , 3F
11/15 03:20, 3F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章