1 / 19

Review of Chapter 9

Review of Chapter 9. 張啟中. Inheritance Hierarchy. Max PQ. Min PQ. Min Heap. DEPQ. Max Heap. Mergeable Min PQ. Deap. Min-Max. Symmetric Max Data Structures. Min-Leftist. Min-Skew. MinFHeap. MinBHeap. Double-Ended Priority Queue.

gaia
Télécharger la présentation

Review of Chapter 9

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Review of Chapter 9 張啟中

  2. Inheritance Hierarchy Max PQ Min PQ Min Heap DEPQ Max Heap Mergeable Min PQ Deap Min-Max Symmetric Max Data Structures Min-Leftist Min-Skew MinFHeap MinBHeap

  3. Double-Ended Priority Queue • A double-ended priority queue is a data structure that supports the following operations: • inserting an element with an arbitrary key • deleting an element with the largest key • deleting an element with the smallest key • There are two kinds of DEPQ • Min-Max Heap • Deap

  4. Min-Max Heaps • Definition A min-max heap is a complete binary tree such that if it is not empty, • Each element has a data member called key. • Alternating levels of this tree are min levels and max levels, respectively. • The root is on a min level. • Let x be any node in a min-max heap. If x is on a min (max) level then the element in x has the minimum (maximum) key from among all elements in the subtree with root x. A node on a min (max) level is called a min (max) node.

  5. Example 7 min 70 40 max 30 9 10 15 min 45 50 30 20 12 max

  6. Insertion of a Min-Max Heap • Step 1 • 將欲新增的元素插入 Min-Max Heap 最後一個節點 • Step 2 • 將新增節點與其父節點做比較,若父節點位於 Min (Max) Level,且新增節點小於 (大於) 父節點,則交換二者的位置。 • Step 3 • 若交換後新增節點的位於 Min (Max) Level,則依序往上與各 Min (Max) Level 的節點比較,若新增節點較小(大),則二者交換。 • Step 4 • 重複 Step 3,直至不能再交換或到 root 為止。

  7. Insertion of a Min-Max Heap O(logn) 7 min 70 40 max 30 9 10 15 min 45 50 30 20 12 5 max

  8. Insertion of a Min-Max Heap 7 min 70 40 max 30 9 10 15 min 45 50 30 20 12 80 max

  9. Deletion of The Min Element • Step 1 • 刪除 root • Step 2 • 將最後一個節點刪除,並重新插入 Min-Max Heap的 root

  10. Deletion of The Min Element • Step 3 • Case 1 The root has no children. • In this case x is to be inserted into the root. • Case 2 The root has at least one child. • Find the smallest key from the children or grandchildren of root. • Assume node k has the smallest key. x is inserted node. • x.key <= h[k].key  Insert x to the root • x.key > h[k].key and k is child of the root  Interchange x and k • x.key > h[k].key and k is grandchild of the root  (1) h[k] is moved to the root. (2) Let p is parent of node k. If x.key > h[p].key then h[p] and x are to interchanged. Repeat Step 3 with root k.

  11. Deletion of The Min Element O(logn) 7 min 70 40 max 30 9 10 15 min 45 50 30 20 12 max

  12. Deaps • Definition A deap is a complete binary tree that is either empty or satisfies the following properties • The root contains no element. • The left subtree is a min heap. • The right subtree is a max heap. • If the right subtree is not empty, then let i be any node in the left subtree. Let j be the corresponding node in the right subtree. If such a j does not exist, then let j be the node in the right subtree that corresponds to the parent of i. The key in node i is less than or equal to that of j.

  13. Deap 5 45 10 8 25 40 20 15 19 9 30 Max Heap Min Heap

  14. Insertion Into a Deap • Step 1 • 將新增的元素插入 Deap 的最後面一個節點 • Step 2 • 與新增節點相對位置的節點比較大小,若該新增節點的位於 Max (Min) Heap,則新增節點必須大於相對節點,否則必須交換。 • Step 3 • 若新增節點位於 Min (Max) Heap,則依 Min (Max) Heap 的新增方式進行。

  15. Insertion Into a Deap 5 45 10 8 25 40 20 15 19 9 30 4 j i

  16. Insertion Into a Deap 5 45 10 8 25 40 20 15 19 9 30 30 j i

  17. Deletion of Min Element • Step 1 • 刪除 Min Heap 的 root • Step 2 • 比較 Min Heap 中 root 的兩個 child,將較小的值移到 root,直到 leaf 為止。 • Step 3 • 將最後一個節點刪除,插入空出的 Leaf,並依照 Deap 新增的方式操作

  18. Deletion of Min Element 5 45 10 8 25 40 j 20 15 19 9 30 i

More Related