1 / 15

Chapter 10 Search Trees

Chapter 10 Search Trees. 10.1 Binary Search Trees. 10.1 Binary Search Trees. 6. <. 2. 9. >. =. 8. 1. 4. Dr Zeinab Eid. A binary search tree is a proper binary tree storing keys (or key-value entries) at its internal nodes and satisfying the following property:

wike
Download Presentation

Chapter 10 Search Trees

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 10Search Trees 10.1 Binary Search Trees Search Trees

  2. 10.1 Binary Search Trees 6 < 2 9 > = 8 1 4 Dr Zeinab Eid Search Trees

  3. A binary search tree is a proper binary tree storing keys (or key-value entries) at its internal nodes and satisfying the following property: Let u, v, and w be three nodes such that u is in the left subtree of v and w is in the right subtree of v. We have key(u)key(v) key(w) External nodes do not store items An inorder traversal of a binary search trees visits the keys in increasing order 6 2 9 1 4 8 10.1 Binary Search Trees Search Trees

  4. 10.1.1 Search AlgorithmTreeSearch(k, v) ifT.isExternal (v)then returnv if k<key(v) returnTreeSearch(k, T.left(v)) else if k=key(v) returnv else{ k>key(v) } returnTreeSearch(k, T.right(v)) • To search for a key k, we trace a downward path starting at the root • The next node visited depends on the outcome of the comparison of k with the key of the current node • If we reach a leaf, the key is not found and we return null • Example: find(4): • Call TreeSearch(4,root) 6 < 2 9 > = 8 1 4 Search Trees

  5. 10.1.2 Update Operations • Insertion • Removal Dr Zeinab Eid Search Trees

  6. Insertion • Let us assume a proper binary tree T supports the following update operation: insertAtExternal(v,e):Insert the element e at the external node v, and expand v to be internal, having new (empty) external node children; an error occurs if v is an internal node. Dr Zeinab Eid Search Trees

  7. Insertion 6 < • To perform operation insert(k, e), we search for key k (using TreeSearch) • Assume k is not already in the tree, and let w be the leaf reached by the search • We insert k at node w and expand w into an internal node • Example: insert 5 2 9 > 1 4 8 > w 6 2 9 1 4 8 w 5 Dr Zeinab Eid Search Trees

  8. Removal • We assume that a proper binary tree T supports the following additional update operation: removeExternal(v): Remove an external node v and its parent, replacing v’s parent with v’s sibling; an error occurs if v is not external. Dr Zeinab Eid Search Trees

  9. Removal • To perform operation remove(k), we search for key k: • Assume key k is in the tree, and let let v be the node storing k • If node v has a leaf child w, we remove v and w from the tree with operation removeExternal(w), which removes w and its parent • Example: remove 4 6 < 2 9 > v 1 4 8 w 5 6 2 9 1 5 8 Dr Zeinab Eid Search Trees

  10. Removal (cont.) 1 • We consider the case where the key k to be removed is stored at a node v whose children are both internal • we find the internal node w that follows v in an inorder traversal • we copy key(w) into node v • we remove node w and its left child z (which must be a leaf) by means of operation removeExternal(z) • Example: remove 3 v 3 2 8 6 9 w 5 z 1 v 5 2 8 6 9 Dr Zeinab Eid Search Trees

  11. Example: Delete65: - FindIn-order Successor of 65, which is 76. - Copy the key of this successor node into node to be deleted. - Remove this successor node, which must have external node as its left child. Dr Zeinab Eid Search Trees

  12. Performance Analysis of Binary-Search Tree • All Search, insert and remove algorithms traverse a path from the root to a node in the BST. • In all three algorithms, we spend O(1) time at each node visited. • In the worst case, the number of nodes visited is proportional to the height h of T. • Thus, in a BST of n-nodes, all search, insert and remove methods run in O(h) time. Dr Zeinab Eid Search Trees

  13. Performance Analysis of Binary-Search Tree • A BST, T, is an efficient implementation of a dictionary of n-entries only if the height of T is small. • Best Case: T has height h=log(n+1), leading to a logarithmic-time performance of all dictionary operations. • Worst Case: T has height n, leading to a linear-time performance, as in case of a set of ordered keys. Dr Zeinab Eid Search Trees

  14. Performance • Consider a dictionary with n items implemented by means of a binary search tree of height h • the space used is O(n) • methods search, insert and remove take O(h) time • The height h is O(n)in the worst case and O(log n) in the best case Dr Zeinab Eid Search Trees

  15. Notice That: • The running time of search and update operations in a BST varies dramatically, depending on the tree’s height. • On the average, a BST with n-keys, generated by a random series of insertions and removals, of n keys has an expected height of O(log n) . • Nevertheless, we must not use standard BST in applications, where updates are not random. Dr Zeinab Eid Search Trees

More Related