二叉搜尋樹 BST

2021-10-24 23:01:16 字數 1399 閱讀 6167

也稱二叉查詢樹或二叉排序樹

非空二叉搜尋樹的性質

刪除:此操作相對其他操作更加複雜。

可以分為三種情況:

參考自浙大資料結構

#include

#include

#include

using namespace std;

typedef

int elementtype;

/** 二叉搜尋樹:

* 左子樹元素都比根元素小,

* 右子樹元素都比根節點大,

* 左右子樹都是二叉搜尋樹

* 操作:

* 查詢,插入,刪除

*/typedef

struct treenode *position;

typedef position bintree;

struct treenode

;position find

(elementtype x,bintree bst)

else

if(x < bst->data)

else

return bst;

/*查詢成功,返回結點位址*/

}position iterfind

(elementtype x,bintree bst)

return

null;}

position findmin

(bintree bst)

position findmax

(bintree bst)

bintree insert

(elementtype x,bintree bst)

if(x > bst->data)

else

if(x < bst->data)

return bst;

}bintree delete

(elementtype x,bintree bst)

else

else

}return bst;}}

void

postorder

(bintree bst)

}int

main()

; bintree bst =

null

;for

(int i =

0; i <7;

++i)

postorder

(bst)

;delete(1

,bst)

;puts(""

);postorder

(bst)

;return0;

}

二叉搜尋樹BST

在二叉搜尋樹b中查詢x的過程為 1.若b是空樹,則搜尋失敗,否則 2.若x等於b的根結點的資料域之值,則查詢成功 否則 3.若x小於b的根結點的資料域之值,則搜尋左子樹 否則 4.查詢右子樹 指標parent指向proot的父節點,其初始呼叫值為null 若查詢成功,指標ptarget指向目標節點,...

二叉搜尋樹(BST)

二叉搜尋樹 bst bst 或者是一棵空樹,或者對於任何乙個結點,設其值為k,則該結點的左子樹的值小於k,右結點的值大於k。二叉搜尋樹按照中根遍歷將各個結點列印,將得到按照大到小的順序排列。bsg示意圖 二叉搜尋樹的效率在於檢索,將演算法複雜度從2 k減少到log n 檢索方式 從根結點開始,如果等...

BST二叉搜尋樹

深入學習理解bst include using namespace std typedef struct bitnodebitnode,bitree 二叉樹的插入操作 void insert bitnode root,int x 因為當對空樹插入時,相當於改變了樹的根節點的指向,因此需要用到指標或引...