資料結構 二叉搜尋樹2

2021-10-03 14:36:17 字數 838 閱讀 1470

之前我們實現了簡單的二叉搜尋樹,現在介紹一下,stl中的容器,應對需要使用二叉搜尋樹的情況

其實,大多數時候,用stl中的set就夠了,不需要自己實現

1 #include 2 #include 3 #include 45

using

namespace

std;67

//set的內部結構其實不只是搜尋二叉樹那麼簡單8//

set是一種自平衡二叉查詢樹,名叫紅黑樹9//

如果要對複雜的資料進行操作,需要重寫仿函式,來進行大小的確定

1011

intmain()

1228

else

2932

33 s.erase(3

);34

35 it=s.find(3

);36

37if(it==s.end())

3841

else

4245

46//

set也有count函式,但是不常用

47//

如果要求二叉搜尋樹中,有重複的,要用multiset

4849

50//

此外,用set查詢元素,還可以用以下三個函式

51//

lower_bound,查詢小於等於的元素

52//

upper_bound,查詢大於的元素

53//

equal_bound,返回乙個pair型別

54//

第乙個是大於等於的元素的位置,第二個是大於的元素的位置

5556

return0;

57 }

資料結構 2 二叉搜尋樹(BST)

二叉搜尋樹 乙個節點的左子節點的關鍵字的值小於這個節點,右子節點的關鍵字的值大於或者等於這個父節點 在查詢過程中,用變數current來儲存正在檢視的節點,引數key是要查詢的值,查詢從root開始,因此開始把current設為根。之後,在while迴圈中,將要查詢的值,key與idata做比較。小...

二叉搜尋樹c 資料結構二叉搜尋樹

在n個動態的整數中搜尋某個整數?檢視其是否存在 假設使用動態陣列存放元素,從第 0 個位置開始遍歷搜尋,平均時間複雜度 o n 如果維護乙個有序的動態陣列,使用二分搜尋,最壞時間複雜度 o logn 但是新增 刪除的平均時間複雜度是 o n 針對這個需求,有沒有更好的方案?今天我們主要講的就是二叉搜...

資料結構(二叉搜尋樹)

二叉搜尋樹是一種可以高效完成以下操作的樹型的資料結構 插入乙個值 查詢是否含有某個值 刪除某個值 它儲存節點的資料資訊時,遵循以下規則,左子樹的值 根節點值 右子樹的值 下面是基本的二叉搜尋樹的實現 include include include includeusing namespace std...