1 / 21

Chapter 12

Chapter 12. Binary search trees Lee, Hsiu-Hui Ack: This presentation is based on the lecture slides from Hsu, Lih-Hsing, as well as various materials from the web. Binary Search Tree. Binary-search property :

taro
Télécharger la présentation

Chapter 12

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. Chapter 12 Binary search trees Lee, Hsiu-Hui Ack: This presentation is based on the lecture slides from Hsu, Lih-Hsing, as well as various materials from the web.

  2. Binary Search Tree • Binary-search property: Let x be a node in a binary search tree. If y is a node in the left subtree of x, then key[y]  key[x]. If y is a node in the right subtree of x, then key[x]  key[y]. Hsiu-Hui Lee

  3. Binary search Tree Hsiu-Hui Lee

  4. Inorder tree walk INORDER_TREE_WALK(x) 1 if 2 then INORDER_TREE_WALK(left[x]) 3 print key[x] 4 INORDER_TREE_WALK(right[x]) Hsiu-Hui Lee

  5. Theorem 12.1 If x is the root of an n-node subtree, then the call INORDER-TREE-WALK(x) takes (n) time. Proved by substitution method. Hsiu-Hui Lee

  6. Preorder tree walk • Postorder tree walk Hsiu-Hui Lee

  7. Querying a binary search tree Hsiu-Hui Lee

  8. TREE_SEARCH(x, k) 1 ifor 2 then returnx 3 if 4 then return TREE_SEARCH(left[x],k) 5 else return TREE_SEARCH(right[x],k) Hsiu-Hui Lee

  9. ITERATIVE_SEARCH (x, k) 1 While or 2 do if 3 then 4 then 5 returnx Hsiu-Hui Lee

  10. MAXIMUM and MINIMUM TREE_MINIMUM(x) 1 while left[x]  NIL 2 dox  left[x] • returnx TREE_MAXIMUM(x) 1 while right[x]  NIL 2 dox  right[x] 3 returnx Hsiu-Hui Lee

  11. SUCCESSOR and PREDECESSOR TREE_SUCCESSOR 1 if 2 then return TREE_MINIMUM(right[x]) 3 4 whileand 5 do 6 7 returny Hsiu-Hui Lee

  12. Successor of the node with key value 15. (Answer: 17) • Successor of the node with key value 6. (Answer: 7) • Successor of the node with key value 4. (Answer: 6) • Predecessor of the node with key value 6. (Answer: 4) Hsiu-Hui Lee

  13. Theorem 12.2 • The dynamic-set operations, SEARCH, MINIMUM, MAXIMUM, SUCCESSOR, and PREDECESSOR can be made to run in O(h) time on a binary search tree of height h. Hsiu-Hui Lee

  14. 12.3 Insertion and deletion

  15. Tree-Insert(T, z) 1 y  NIL 2 x root[T] 3 whilex NIL 4 doy x 5 ifkey[z] < key[x] 6 thenx left[x] 7 elsex right[x] • p[z]  y 9 ify = NIL 10 thenroot[T]  z tree T was empty 11 elseifkey[z] < key[y] 12 thenleft[y]  z 13 elseright[y]  z Hsiu-Hui Lee

  16. Inserting an item with key 13 into a binary search tree Hsiu-Hui Lee

  17. Tree-Delete(T, z) 1 ifleft[z] = NILorright[z] = NIL 2 theny z 3 elsey Tree-Successor(z) 4 if left[y]  NIL 5 thenx left[y] 6 elsex right[y] 7 ifx NIL • thenp[x]  p[y] 9 ifp[y] = NIL 10 thenroot[T]  x 11 else ify = left[p[y]] 12 thenleft[p[y]]  x 13 elseright[p[y]]  x 14 ify z 15 thenkey[z]  key[y] 16 copy y’s satellite data into z 17 returny Hsiu-Hui Lee

  18. Case a: z has no children Hsiu-Hui Lee

  19. Case b: z has only one child Hsiu-Hui Lee

  20. Case c: z has two children Hsiu-Hui Lee

  21. Theorem 12.3 • The dynamic-set operations, INSERT and DELETE can be made to run in O(h) time on a binary search tree of height h. Hsiu-Hui Lee

More Related