210 likes | 349 Vues
This presentation explores binary search trees (BST), covering essential concepts like the binary search property, various tree traversal methods (inorder, preorder, postorder), and important operations such as searching, inserting, and deleting nodes. Theoretical foundations and practical examples are provided, including the time complexity of key operations. The tree's successor and predecessor concepts are demonstrated with specific key values. The material is based on lecture slides and web resources by Hsu, Lih-Hsing, and Hsiu-Hui Lee, offering a comprehensive overview of BSTs for learners.
E N D
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: 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
Binary search Tree Hsiu-Hui Lee
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
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
Preorder tree walk • Postorder tree walk Hsiu-Hui Lee
Querying a binary search tree Hsiu-Hui Lee
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
ITERATIVE_SEARCH (x, k) 1 While or 2 do if 3 then 4 then 5 returnx Hsiu-Hui Lee
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
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
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
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
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
Inserting an item with key 13 into a binary search tree Hsiu-Hui Lee
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
Case a: z has no children Hsiu-Hui Lee
Case b: z has only one child Hsiu-Hui Lee
Case c: z has two children Hsiu-Hui Lee
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