Download presentation
Presentation is loading. Please wait.
Published byCharity Harrell Modified over 6 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.