資料結構 堆的建立和排序

2022-08-22 03:45:11 字數 1232 閱讀 9206

1、隨機生成一棵完全二叉樹

2、調整結點56及其子樹

3、調整結點77及其子樹

4、調整結點45及其子樹

5、調整結點18及其子樹

6、調整結點29及其子樹

(1)調整幾點29及其左、右兒子

(2)調整結點29及其左、右兒子

1、取出當前最小元素3

(1)掐尖

(2)將結點65放到堆頂

(3)交換結點65與結點7

(4)交換節點65與結點29

2、取出當前最小元素7

(1)掐尖

(2)將結點30放到堆頂

(3)交換結點30與結點18

(4)交換結點30與結點29』

(5)已形成乙個新的堆,不用再交換

3、取出當前最小元素18

(1)掐尖

(2)將結點77放到堆頂

(3)交換結點77與結點29』

(4)交換結點77與結點30

說明:以上圖形為graphviz軟體所作。

資料結構 堆(建立,插入,刪除,排序)

關於二次總結是否有必要,我覺得是有的,參考學習別人的知識,內化的過程是一次總結的過程。每次參考同乙個人的思維軌跡,確實能培養思維。該篇筆記整理理由 在pat advanced level的heap path一題,參考了關於堆的正序遍歷的映象。於是參考一下堆相關筆記。void createheap v...

資料結構 雙鏈表的建立和操作

雙向鍊錶也叫雙鏈表,是鍊錶的一種,它的每個資料結點中都有兩個指標,分別指向直接後繼和直接前驅。所以,從雙向鍊錶中的任意乙個結點開始,都可以很方便地訪問它的前驅結點和後繼結點。一般我們都構造雙向迴圈鍊錶。注意 在實現的過程中,要分清前驅指標和後繼指標,不要把他們當成乙個指標。1 雙向鍊錶的實現 2 t...

堆(資料結構)及堆排序

這裡的堆是指一種資料結構 或資料結構屬性 非指堆記憶體。堆屬性用二叉樹來體現,具堆屬性的資料結構才可被叫做為堆。具堆屬性的資料結構滿足以下筆記的 順序 和 形狀 兩個條件。將某資料結構如陣列,將陣列的元素依次安排在二叉樹中的根結點 根結點的左孩子 根結點的右孩子位置之上,再將剩餘元素依次安排在根結點...