0% found this document useful (0 votes)
53 views25 pages

L20 BST

Here are the key steps for deleting a node z that has no children: 1. Locate z in the tree using tree-search. 2. Remove z by replacing it with NIL. 3. Free up the memory allocated to z. This takes O(h) time where h is the height of the tree. Since z has no children, removing it simply requires replacing it with NIL in the tree.

Uploaded by

Akash Sahu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
53 views25 pages

L20 BST

Here are the key steps for deleting a node z that has no children: 1. Locate z in the tree using tree-search. 2. Remove z by replacing it with NIL. 3. Free up the memory allocated to z. This takes O(h) time where h is the height of the tree. Since z has no children, removing it simply requires replacing it with NIL in the tree.

Uploaded by

Akash Sahu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

Binary Search Trees

Instructor: Ashok Singh Sairam


Lecture Plan
• Binary Search Trees (BST) Operations
§ Searching
§ Minimum
§ Maximum
§ Successor
§ Predecessor
§ Insertion
§ Deletion

MA512: Data Structures and Algorithms


2
Binary Tree Representation
• Tree representation:
§ A linked data structure in which each
node is an object
• Node representation: parent
x.key field L R
§
keydata
§ Satellite data
§ x.left: pointer to left child
§ x.right: pointer to right child Left childRight child
§ x.p: pointer to parent
root.p = NIL)

MA512: Data Structures and Algorithms


3
Binary Search Tree
• A BST is a binary tree that satisfy the binary-
search-tree property
• Binary search tree property: 5
§ If y is in left subtree of x,
3 7
then y.key ≤ x.key
2 5 9
§ If y is in right subtree of x,
then y.key ≥ x.key

MA512: Data Structures and Algorithms


4
Operations supported
• Support many dynamic set operations
§ SEARCH, MINIMUM, MAXIMUM, PREDECESSOR,
SUCCESSOR, INSERT, DELETE
• Running time of basic operations on binary search
trees
§ On average: (lgn)
• The expected height of the tree is lgn
§ In the worst case: (n)
• The tree is a linear chain of n nodes

MA512: Data Structures and Algorithms


5
Traversing a BST
• Inorder tree walk:
§ Root is printed between the values of its left and right
subtrees: left, root, right
§ Keys are printed in sorted order
• Preorder tree walk: root printed first: root, left, right
• Postorder tree walk: root printed last: left, right, root

5 Inorder: 2 3 5 5 7 9
Preorder: 5 3 2 5 7 9
3 7
2 5 9 Postorder: 2 5 3 9 7 5

MA512: Data Structures and Algorithms


6
Searching for a Key
• Given a pointer to the root of a tree and a key k:
§ Return a pointer to a node with key k if one 5
exists
§ Otherwise return NIL 3 7
• Idea 2 4 9
§ Starting at the root: trace down a path by
comparing k with the key of the current node:
• If the keys are equal: we have found the key
• If k < x.key search in the left subtree of x
• If k > x.key search in the right subtree of x

MA512: Data Structures and Algorithms


7
Example: TREE-SEARCH

15
Search for key 13:
6 18 n 15  6  7  13
3 7 17 20
2 4 13
9

MA512: Data Structures and Algorithms


8
Searching for a key

• Running Time: O (h),


• h – the height of the tree

MA512: Data Structures and Algorithms


9
Finding the Minimum in a BST
• Goal: find the minimum value in a BST
§ Following left child pointers from the root, until a NIL is
encountered 15

6 18
3 7 17 20
2 4 13
9
• Running time: O(h), h – height of tree Minimum = 2

MA512: Data Structures and Algorithms


10
Finding the Maximum in a BST
• Goal: find the maximum value in a BST
§ Following right child pointers from the root, until a NIL is
encountered 15

6 18
3 7 17 20
2 4 13
• Running time: O(h), h – height of tree 9
Maximum = 20

MA512: Data Structures and Algorithms


11
Successor
Def: successor (x ) = y, such that y.key is the
smallest key > x.key 15
• E.g.: successor (15)
17=
successor (13)
15= 6 18
successor (9)13
= 3
x
7 17 y 20
• Case 1: x.right is non empty 2 4 13
§ successor (x ) = minimum in x.right 9
§ Case 2: x.right is empty
§ go up the tree until the current node is a left child:
successor (x ) is the parent of the current node
§ if you cannot go further (and you reached the root): x is
the largest element
MA512: Data Structures and Algorithms
12
Finding the Successor

• Running time: O (h), h – height of the tree

MA512: Data Structures and Algorithms


13
Predecessor
Def: predecessor (x ) = y, such that y.key is the
biggest key < x.key 15
y
• E.g.: predecessor (15)13 = x 18
6
predecessor (9)7=
predecessor (7)6= 3 7 17 20
• Case 1: x.left is non empty 2 4 13
§ predecessor (x ) = the maximum in x.left
9
• Case 2: x.left is empty
§ go up the tree until the current node is a right child:
predecessor (x ) is the parent of the current node
§ if you cannot go further (and you reached the root): x
is the smallest element
MA512: Data Structures and Algorithms
14
Exercise

MA512: Data Structures and Algorithms


15
Insertion
• Goal: Insert value v into a binary search tree
• Idea: Beginning at the root, go down the tree and maintain:
• Pointer x : traces the downward path Insert value 13
(current node) 12
• Pointer y : parent of x (“trailing pointer” )
§ If x.key < v move to the right child of x, 5 18

else move to the left child of x 2 9 15 19


§ When x is NIL, we found the 1 3 13 17
correct position
§ If v < y.key insert the new node as y’s left hild else insert
it as y’s right child

MA512: Data Structures and Algorithms


16
Example: Tree-Insert
y
x=root[T], y=NIL 12
Insert 13: 12
x
5 18
5 18
2 9 15 19
2 9 15 19
1 3 17
1 3 17

12 12

x y
5 18 5 18
2 9 15 19 2 9 15 19
1 3 17 1 3 13 17
x = NIL
y = 15
MA512: Data Structures and Algorithms
17
Pseudocode: Tree-Insert

MA512: Data Structures and Algorithms


18
Deletion: Case 1
• Goal: Delete a given node z from a binary search tree
• Idea: Case 1: z has no children
• Delete z by making the parent of z point to NIL
15 15

5 16 5 16

3 12 20 3 12 20

10 13 18 23 10 18 23

6 delete 6

7 7

MA512: Data Structures and Algorithms


19
Deletion: Case 2
• Case 2: z has one child
§ Delete z by making the parent of z point to z’s child,
instead of to z

15 15
z delete
5 16 5 20

3 3 12 18 23
12 20

10 13 18 23 10

6 6

7 7

MA512: Data Structures and Algorithms


20
Deletion: Case 3
• Case 3: z has two children
§ z’s successor (y) is the minimum node in z’s right subtree
§ y has either no children or one right child (but no left child)
§ Delete y from the tree (via Case 1 or 2)
§ Replace z’s key and satellite data with y’s.
15 15
delete z
5 16 6 16

3 12 20 3 12 20

10 13 18 23 10 13 18 23

6 7

7 MA512: Data Structures and Algorithms


21
Algorithm: Tree-Delete
Tree-Delete(T,z)
1. if z.left = NIL and z.right = NIL
2. z.p = Nil // Case 1
3. if z.left = NIL or z.right = NIL
4. then y ← z // Case 2 15
y
5. else y ← TREE-SUCCESSOR(z) //Case 3
5 16
6. if y.left  NIL x
7. then x ← y.left 3 12 20
8. else x ← y.right 10 13 18 23
9. if x  NIL
6
10. then x.p ← y.p Case 2
7

MA512: Data Structures and Algorithms


22
Algorithm: Tree-Delete – contd.
15 y

11. if y.p = NIL 5 16


x
12. then T.root ← x 3 12 20
13. else if y = y.p.left 10 13 18 23
14. then y.p.left ← x 6 Case 2
15. else y.p.right ← x
7
16. if y  z // Case 3 15
17. then z.key ← y.key delete z
5 16
18. copy y’s satellite data into z
19. return y 3 12 20

10 13 18 23
y 6
Case 3
7
MA512: Data Structures and Algorithms
23
Binary Search Trees - Summary
• Operations on binary search trees:
§ SEARCH O(h)
§ PREDECESSOR O(h)
§ SUCCESOR O(h)
§ MINIMUM O(h)
§ MAXIMUM O(h)
§ INSERT O(h)
§ DELETE O(h)
• These operations are fast if the height of the tree is small – otherwise
their performance is similar to that of a linked list

MA512: Data Structures and Algorithms


24
Acknowledgement
• Dr George Bebis, Foundation Professor, Dept of
Computer Science and Engineering, University of
Nevada Reno

MA512: Data Structures and Algorithms


25

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy