二叉搜尋樹(BST)的相關操作

2021-08-16 05:33:35 字數 831 閱讀 4011

今天寫一寫二叉搜尋樹的插入,查詢,刪除的操作。

首先給出節點的資料結構

struct node

;

第乙個是查詢操作:

void search(node* root,int x)

if(root->

data

==x)

if(x

data)

search(root->l,x);

else

search(root->r,x);

}

第二個插入操作:

void insert(node*

&root,int x)

if(root->

data

==x)

return;

if(x

data)

insert(root->l,x);

else

insert(root->r,x);

}

第三是刪除操作:

這裡要說明的是,實際上刪除的操作有很多的實現的方式,有遞迴和非遞迴的,這裡用了遞迴,是因為實現簡單,不易出錯,容易在考場和比賽是寫出。

node* findpre(node* root)

node*findpost(node* root)

bool deletee(node* root,int x)

else

else}}

else

}

基本上就這些,但是沒有用資料測試過,但是大致思路上就這樣了。

二叉搜尋樹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 因為當對空樹插入時,相當於改變了樹的根節點的指向,因此需要用到指標或引...