動態查詢:動態查詢不僅要查詢結點,而且還要不斷地插入和刪除結點,當表採用順序結構時,這需要花費大量的時間用於結點的移動,效率很低。這裡採用樹表的形式,樹表本身可以動態建立,樹表主要有二叉排序樹,平衡二叉樹,
b-樹和
b+樹等。
二叉排序樹的特點是:
lchild <= root <= rchild
,對此樹中序遍歷就可以找到一組有序的陣列。二叉樹的複雜度一般為
o(log n ),
但在特殊情況為
o(n)
。這裡要強調一點就是二叉排序樹刪除時要分兩種情況
,一種被刪除點沒有左子樹,另外一種是有左子樹。詳細請見源**:
資料結構 二叉排序樹
二叉排序樹是一種特殊結構的二叉樹,它作為一種表的組織手段,通常被稱為 樹表。可以作為一種排序和檢索的手段。定義 二叉排序樹或是空樹,或是具有下述性質的二叉樹 其左子樹上所有結點的資料值均小於根結點的資料值 右子樹上所有結點的資料值均大於或等於根結點的資料值。左子樹和右子樹又各是一棵二叉排序樹。對二叉...
資料結構 二叉排序樹
二叉排序樹 binarysorttree 具有下列性質的二叉樹 1 若左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 2 若右子樹不空,則右子樹上所有結點的值均大於它的根結點的值 3 左 右子樹也分別為二叉排序樹 include includeusing namespace std type...
資料結構 二叉排序樹
如果需要乙個滿足 支援排序性 高效插入 刪除操作 高效查詢的資料結構,怎麼做?先看看一些簡單的資料結構 1 排序順序表 陣列 查詢可以採用折半查詢演算法,時間效率為o log2n 插入 刪除操作的時間複雜度為o n 資料量大時,效率太低。2 排序單鏈表 只能採用順序查詢,時間複雜度為o n 不能採用...