之前我們實現了簡單的二叉搜尋樹,現在介紹一下,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...