Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 10 Search Trees 10.1 Binary Search Trees Search Trees

Similar presentations


Presentation on theme: "Chapter 10 Search Trees 10.1 Binary Search Trees Search Trees"— Presentation transcript:

1 Chapter 10 Search Trees 10.1 Binary Search Trees Search Trees
Dr Zeinab Eid

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

3 10.1 Binary Search Trees 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 9 2 4 1 8 Dr Zeinab Eid Search Trees

4 Search 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) Algorithm TreeSearch(k, v) if T.isExternal (v) then return v if k < key(v) return TreeSearch(k, T.left(v)) else if k = key(v) else { k > key(v) } return TreeSearch(k, T.right(v)) < 6 2 > 9 1 4 = 8 Dr Zeinab Eid Search Trees

5 10.1.2 Update Operations Insertion Removal Dr Zeinab Eid 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 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 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 Dr Zeinab Eid Search Trees

9 Removal < To perform operation remove(k), we search for key k: >
6 < 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 2 9 > v 1 4 8 w 5 6 2 9 1 5 8 Dr Zeinab Eid Dr Zeinab Eid Search Trees

10 Removal (cont.) 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 1 v 3 2 8 6 9 w 5 z 1 v 5 2 8 6 9 Dr Zeinab Eid Dr Zeinab Eid Search Trees

11 Example: Delete 65: - Find In-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 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 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 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 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 Dr Zeinab Eid Search Trees


Download ppt "Chapter 10 Search Trees 10.1 Binary Search Trees Search Trees"

Similar presentations


Ads by Google