二叉排序樹的實現

2022-03-13 21:22:56 字數 1430 閱讀 2202

查詢

//偽**

searchbst(t, key)

//**實現

bstree searchbst(bstree t,int key)

插入

//偽**

insertbst(t, key)

else if (key == t->key)

return;

else if(key > t->key)

insert(t->rchild, key);

else

insert(t->lchild, key);

}//**實現

void insertbst(bstree &t,int key)

else if (key == t->key)

return;

else if(key > t->key)

insertbst(t->rchild, key);

else

insertbst(t->lchild, key);

}

建立

//偽**

createbst(n) //n為輸入的資料量

return t;

}//**實現

bstree createbst(int n)

return t;

}

輸出效果:

//偽**

deletebst(t, key)

else

else if (key > t->key)

else

}}deletet(t)

else if (t->lchild 為空)

else

}deletetree(t,r)

else

}

//**實現

void deletebst(bstree &t,int key)

else

else if (key > t->key)

else

}}void deletet(bstree &t)

else if (t->lchild == null)

else

}void deletetree(bstree &t,bstree &r)

else

}

效果(刪除30):

二叉排序樹的實現

二叉排序樹是一顆特殊的二叉樹 對於樹上的任意乙個結點,根節點的值一定大於其左子樹上的任意結點的值,一定小於其右子樹上任意結點的數值。所以我們可以插入實現二叉排序樹,思路可以這樣 1 若當前樹為空,則x為根節點 2 如果樹不為空,比較根節點與之大小,若插入值小於根節點,就繼續比較跟節點的左子樹,即最終...

二叉排序樹的實現

二叉排序 搜尋 樹是以關鍵碼為結點的二叉樹,其性質 如果任一結點的左子樹非空,則左子樹的所有結點的關鍵碼都小於根結點的關鍵碼 如果任一結點的右子樹非空,則右子樹的所有結點的關鍵碼都大於根結點的關鍵碼。二叉排序樹的儲存結構如下,typedef struct binsortnode pbinsortno...

二叉排序樹的實現

包括二叉排序樹的增加 遍歷和刪除 include include typedef int mytype 二叉排序樹 typedef struct structtreebtree btree init void addchild btree tree,int num void printtree bt...