二叉查詢樹和二叉堆的分析小結

2022-09-23 14:18:10 字數 462 閱讀 4335

二叉查詢樹和二叉堆的分析小結:一、二叉排序樹:樹中的每個節點,它的左子樹中的所有項的值小於x中的項,而它的右子樹中所有項的值大於x中的項。

二叉查詢樹中最困難的操作是remove(刪除),分為以下幾種情況:

1)如果節點是一片樹葉,那麼它可以被立即刪除;

2)如果節點有乙個兒子,則該節點可以在其父節點調整自己的鏈以繞過該節點後被刪除;

3)複雜的情況是處理具有兩個兒子的節點。一般的刪除策略是用其右子樹的最小的資料代替該節點的資料並遞迴的刪除那個節點。

二、二叉堆

在二叉堆(假設為小頂堆)中的deletemin操作

當刪除乙個最小元時,要在根節點處建立乙個空穴。由於現在堆少了乙個元素,因此堆中最後乙個元素x必須移動到該堆的某個地方,如果x可以放入空穴中,那麼deletemin完成,一般不可能完成,因此我們將空穴的兩個兒子中的較小者移入空穴,這樣將空穴向下推了一層,重複該步驟直到x被填入到堆中的合適位置。

二叉堆和二叉搜尋樹高階

1 引言 演算法競賽高階指南 中指出,在二叉樹中,有兩組非常重要的條件,分別是兩類資料結構的基本性質。其一是 堆性質 若二叉樹中的任意乙個節點的權值都大於等於 小於等於 其父親節點,則稱該二叉樹滿足 小頂堆性質 大頂堆性質 其二是 bst性質 二叉樹上的每個節點都帶有乙個數值,稱為該節點的鍵值 ke...

二叉樹和二叉查詢樹

以前學過二叉樹,是用c語言實現的,當時雖然聽懂了,但是自己用c語言實現,還是有點困難的,現在學習了前端,發現二叉樹還是很簡單的。今天就來說一說。二叉樹是一種常用的資料結構,樹也是一種非線性的資料結構,以分層的方式儲存資料,樹被用來儲存具有層級關係的資料,比如系統中的檔案,還有前端經常說到的dom樹。...

二叉堆(完全二叉樹)

最小堆的實現 最小堆是一顆完全二叉樹 這裡用陣列實現完全二叉樹 index 0 1 2 3 4 5 6 value 空 a b c d 任意index,其父親為index 2,左兒子為2 index,右兒子為2 index 1 時間複雜度 o logn include includeusing na...