10 - DS and Algorithm - Session - 14.pps
10 - DS and Algorithm - Session - 14.pps
Objectives
In this session, you will learn to:
Apply trees to solve programming problems
Implement a threaded binary tree
Ver. 1.0
Session 14
Ver. 1.0
1200
35
1800
43
2000
1400
1600
Session 14
200
24
400
44
600
40
800
68
1000
59
1200
55
1400
72
1600
35
1800
43
2000
Index
Ver. 1.0
36
68
44
24
40
35
59
72
55
43
Ver. 1.0
Session 14
Ver. 1.0
Session 14
. 65 .
. 40 .
30
. 72 .
. 50 .
69
80
60
Ver. 1.0
Session 14
. 65 .
. 40 .
30
. 72 .
50
69
80
60
Ver. 1.0
Session 14
. 65 .
. 40 .
30
. 72 .
50
69
80
60
Ver. 1.0
Session 14
. 65 .
. 40 .
30
. 72 .
50
69
80
60
Ver. 1.0
Session 14
. 65 .
. 40 .
30
. 72 .
50
69
80
60
Ver. 1.0
Session 14
. 65 .
. 40 .
. 30
. 72 .
50
69
80
60
Ver. 1.0
Session 14
Answer:
successor, predecessor
Ver. 1.0
Session 14
4631
Left
Address of
Thread Left Child
Ver. 1.0
Information
Data
2389
Address of
Right Child
Right
Thread
Session 14
Ver. 1.0
Session 14
Answer:
In a threaded binary tree, the root node is identified as the left
child of the header node. If the tree is empty, the left child of
the header node becomes a thread pointing to itself.
Ver. 1.0
Session 14
Answer:
Each node in a threaded binary tree holds two extra pieces of
information known as left thread and right thread. The value of
these two fields indicates whether the left/right child field of a
node contains a link to a child node or a thread to its inorder
predecessor/successor.
Ver. 1.0
Session 14
Ver. 1.0
Session 14
Write
an algorithm
toinorder
locate the inorder successor of a node
Algorithm
to find the
in
a threaded
successor
of abinary
node tree.
in a threaded 2. If the right child of currentNode is a
thread:
binary tree.
a.
Mark the right child of
b.
Ver. 1.0
currentNode as successor.
Exit.
3.
4.
5.
6.
Session 14
1.
2.
3.
4.
5.
6.
. 65 .
. 40 .
30
. 72 .
. 50 .
69
60
Ver. 1.0
80
Session 14
currentNode
. 72 .
. 50 .
69
60
Ver. 1.0
2.
3.
4.
5.
6.
. 65 .
. 40 .
30
1.
80
Session 14
currentNode
. 72 .
. 50 .
69
60
Ver. 1.0
2.
3.
4.
5.
6.
. 65 .
. 40 .
30
1.
80
Session 14
currentNode
. 40 .
. 72 .
. 50 .
69
60
Ver. 1.0
2.
3.
4.
5.
6.
. 65 .
currentNode
30
1.
80
Session 14
1.
2.
3.
4.
5.
6.
. 65 .
currentNode
. 40 .
30
. 72 .
. 50 .
69
60
Ver. 1.0
80
Session 14
1.
2.
3.
4.
5.
6.
. 65 .
currentNode
. 40 .
30
. 72 .
. 50 .
69
80
currentNode
60
Ver. 1.0
Session 14
1.
2.
3.
4.
5.
6.
. 65 .
. 40 .
30
. 72 .
. 50 .
69
80
currentNode
60
Ver. 1.0
Session 14
Header Node
1.
2.
3.
4.
5.
6.
. 65 .
. 40 .
30
successor
. 50 .
. 72 .
69
80
currentNode
60
Ver. 1.0
Session 14
Ver. 1.0
Session 14
2.
3.
4.
5.
6.
7.
8.
Header Node
. 65 .
. 40 .
. 72 .
. 50 .
30
69
60
Ver. 1.0
80
Session 14
2.
3.
4.
5.
6.
7.
8.
Header Node
. 65 .
. 40 .
. 72 .
. 50 .
30
69
60
Ver. 1.0
80
Session 14
2.
3.
4.
5.
6.
7.
8.
Header Node
currentNode
. 65 .
. 40 .
. 72 .
. 50 .
30
69
60
Ver. 1.0
80
Session 14
2.
3.
4.
5.
6.
7.
8.
Header Node
currentNode
. 65 .
. 40 .
. 72 .
. 50 .
30
69
60
Ver. 1.0
80
Session 14
2.
3.
4.
5.
6.
7.
8.
Header Node
currentNode
. 65 .
currentNode
. 40 .
. 72 .
. 50 .
30
69
60
Ver. 1.0
80
Session 14
2.
3.
4.
5.
6.
7.
8.
Header Node
. 65 .
currentNode
. 40 .
. 72 .
. 50 .
30
69
60
Ver. 1.0
80
Session 14
2.
3.
4.
5.
6.
7.
8.
Header Node
. 65 .
currentNode
. 40 .
. 72 .
. 50 .
30
69
80
currentNode
60
Ver. 1.0
Session 14
2.
3.
4.
5.
6.
7.
8.
Header Node
. 65 .
. 40 .
. 72 .
. 50 .
30
69
80
currentNode
60
Ver. 1.0
Session 14
1.
2.
3.
4.
5.
6.
7.
8.
Header Node
. 65 .
. 40 .
. 72 .
. 50 .
30
69
80
currentNode
60
Ver. 1.0
Session 14
1.
2.
3.
4.
5.
6.
7.
8.
Header Node
. 65 .
. 40 .
. 72 .
. 50 .
30
69
80
currentNode
60
Ver. 1.0
Session 14
1.
2.
3.
4.
5.
6.
7.
8.
Header Node
. 65 .
currentNode
. 40 .
. 72 .
. 50 .
30
69
80
currentNode
60
Ver. 1.0
Session 14
1.
2.
3.
4.
5.
6.
7.
8.
Header Node
. 65 .
currentNode
. 40 .
. 72 .
. 50 .
30
69
60
Ver. 1.0
80
Session 14
1.
2.
3.
4.
5.
6.
7.
8.
Header Node
. 65 .
currentNode
. 40 .
. 72 .
. 50 .
30
69
80
currentNode
60
Ver. 1.0
Session 14
1.
2.
3.
4.
5.
6.
7.
8.
Header Node
. 65 .
. 40 .
. 72 .
. 50 .
30
69
80
currentNode
60
Ver. 1.0
Session 14
1.
2.
3.
4.
5.
6.
7.
8.
Header Node
. 65 .
. 40 .
. 72 .
. 50 .
30
69
80
currentNode
60
Ver. 1.0
currentNode
Session 14
1.
2.
3.
4.
5.
6.
7.
8.
Header Node
. 65 .
. 40 .
. 72 .
. 50 .
30
69
60
Ver. 1.0
80
currentNode
Session 14
1.
2.
3.
4.
5.
6.
7.
8.
Header Node
currentNode
. 65 .
. 40 .
. 72 .
. 50 .
30
69
60
Ver. 1.0
80
currentNode
Session 14
1.
2.
3.
4.
5.
6.
7.
8.
Header Node
currentNode
. 65 .
. 40 .
. 72 .
. 50 .
30
69
60
Ver. 1.0
80
Session 14
1.
2.
3.
4.
5.
6.
7.
8.
Header Node
currentNode
. 65 .
. 40 .
. 72 .
. 50 .
30
69
80
currentNode
60
Ver. 1.0
Session 14
1.
2.
3.
4.
5.
6.
7.
8.
Header Node
. 65 .
. 40 .
. 72 .
. 50 .
30
69
80
currentNode
60
Ver. 1.0
Session 14
1.
2.
3.
4.
5.
6.
7.
8.
Header Node
. 65 .
currentNode
. 40 .
. 72 .
. 50 .
30
69
80
currentNode
60
Ver. 1.0
Session 14
1.
2.
3.
4.
5.
6.
7.
8.
Header Node
. 65 .
currentNode
. 40 .
. 72 .
. 50 .
30
69
60
Ver. 1.0
80
Session 14
1.
2.
3.
4.
5.
6.
7.
8.
Header Node
. 65 .
currentNode
. 40 .
. 72 .
. 50 .
30
69
80
currentNode
60
Ver. 1.0
Session 14
1.
2.
3.
4.
5.
6.
7.
8.
Header Node
Traversal complete
. 65 .
. 40 .
. 72 .
. 50 .
30
69
80
currentNode
60
Ver. 1.0
Session 14
Ver. 1.0
Session 14
Insert node 35
Node the
AlgorithmHeader
to locate
position of a new node in
.
a threaded binary
tree.
2.
3.
4.
. 65 .
. 40 .
. 72 .
. 50 .
30
69
60
Ver. 1.0
80
Insert node 35
Header Node
2.
3.
4.
.
. 65 .
. 40 .
. 72 .
. 50 .
30
69
60
Ver. 1.0
80
Insert node 35
Header Node
2.
3.
4.
.
currentNode
. 65 .
. 40 .
. 72 .
. 50 .
30
69
60
Ver. 1.0
80
Insert node 35
Header Node
parent
currentNode
2.
3.
4.
.
. 65 .
. 40 .
. 72 .
. 50 .
30
69
60
Ver. 1.0
80
Insert node 35
Header Node
parent
currentNode
2.
3.
4.
.
. 65 .
. 40 .
. 72 .
. 50 .
30
69
60
Ver. 1.0
80
Insert node 35
Header Node
parent
2.
3.
4.
parent
currentNode
. 65 .
. 40 .
. 72 .
. 50 .
30
69
60
Ver. 1.0
80
Insert node 35
Header Node
2.
3.
4.
.
parent
currentNode
. 65 .
. 40 .
. 72 .
. 50 .
30
69
60
Ver. 1.0
80
Insert node 35
Header Node
2.
3.
4.
.
parent
currentNode
. 65 .
currentNode
. 40 .
. 72 .
. 50 .
30
69
60
Ver. 1.0
80
Insert node 35
Header Node
2.
3.
4.
.
parent
. 65 .
currentNode
. 40 .
. 72 .
. 50 .
30
69
60
Ver. 1.0
80
Insert node 35
Header Node
2.
3.
4.
.
parent
. 65 .
currentNode
parent
. 40 .
. 72 .
. 50 .
30
69
60
Ver. 1.0
80
Insert node 35
Header Node
2.
3.
4.
.
. 65 .
currentNode
parent
. 40 .
. 72 .
. 50 .
30
69
60
Ver. 1.0
80
Insert node 35
Header Node
2.
3.
4.
.
. 65 .
currentNode
parent
. 40 .
. 72 .
. 50 .
30
69
currentNode
60
Ver. 1.0
80
Insert node 35
Header Node
2.
3.
4.
.
. 65 .
parent
. 40 .
. 72 .
. 50 .
30
69
currentNode
60
Ver. 1.0
80
Insert node 35
Header Node
2.
3.
4.
.
. 65 .
parent
. 40 .
. 72 .
parent
. 50 .
30
69
currentNode
60
Ver. 1.0
80
Insert node 35
Header Node
2.
3.
4.
.
. 65 .
. 40 .
. 72 .
parent
. 50 .
30
69
currentNode
60
Ver. 1.0
80
Insert node 35
Header Node
2.
3.
4.
.
. 65 .
. 40 .
. 72 .
parent
. 50 .
30
69
currentNode
60
Ver. 1.0
80
Insert node 35
Header Node
2.
3.
4.
.
. 65 .
. 40 .
. 72 .
parent
. 50 .
30
69
currentNode
60
Ver. 1.0
80
Insert node 35
Header Node
2.
3.
4.
.
. 65 .
. 40 .
. 72 .
parent
. 50 .
30
69
currentNode
60
Ver. 1.0
80
Insert node 35
Header Node
2.
3.
4.
.
. 65 .
. 40 .
. 72 .
parent
. 50 .
30
69
currentNode
currentNode = NULL
60
Ver. 1.0
80
Insert node 35
Header Node
2.
3.
4.
.
Parent node
located
. 65 .
. 40 .
. 72 .
parent
. 50 .
30
69
currentNode = NULL
60
Ver. 1.0
80
Ver. 1.0
Session 14
Header Node
Ver. 1.0
1.
2.
3.
4.
5.
6.
7.
Session 14
Header Node
New Node
Ver. 1.0
1.
2.
3.
4.
5.
6.
7.
Session 14
Header Node
1.
2.
3.
4.
5.
6.
7.
65
New Node
Ver. 1.0
Session 14
Header Node
1.
2.
3.
4.
5.
6.
7.
65
New Node
Ver. 1.0
Session 14
Header Node
1.
2.
3.
4.
5.
6.
7.
65
New Node
Ver. 1.0
Session 14
Header Node
1.
2.
3.
4.
5.
6.
7.
65
New Node
Ver. 1.0
Session 14
Header Node
1.
2.
3.
4.
5.
6.
7.
65
New Node
Ver. 1.0
Session 14
Insertion complete
Header Node
1.
2.
3.
4.
5.
6.
7.
65
New Node
Ver. 1.0
Session 14
Ver. 1.0
Session 14
Header
Node
to
insert
a new
Algorithm
node
in a threaded binary tree.
2.
3.
4.
. 65 .
. 40 .
. 72 .
5.
30
. 50 .
69
60
Ver. 1.0
80
Insert a node 75
2.
Header Node
3.
4.
. 65 .
. 40 .
. 72 .
5.
30
. 50 .
69
60
Ver. 1.0
80
Insert a node 75
2.
Header Node
3.
4.
. 65 .
. 40 .
. 72 .
parent
5.
30
. 50 .
69
60
Ver. 1.0
80
Insert a node 75
2.
Header Node
3.
4.
. 65 .
. 40 .
. 72 .
parent
5.
30
. 50 .
69
60
Ver. 1.0
80
Insert a node 75
2.
Header Node
3.
4.
. 65 .
. 40 .
. 72 .
parent
5.
30
. 50 .
69
60
Ver. 1.0
80
75
Insert a node 75
2.
Header Node
3.
4.
. 65 .
. 40 .
. 72 .
parent
5.
30
. 50 .
69
60
Ver. 1.0
80
75
Insert a node 75
2.
Header Node
3.
4.
. 65 .
. 40 .
. 72 .
parent
5.
30
. 50 .
69
60
Ver. 1.0
80
75
Insert a node 75
2.
Header Node
3.
4.
. 65 .
. 40 .
. 72 .
parent
5.
30
. 50 .
69
60
Ver. 1.0
80
75
Insert a node 75
2.
Header Node
3.
4.
. 65 .
. 40 .
. 72 .
parent
5.
30
. 50 .
69
60
Ver. 1.0
80
75
Insert a node 75
2.
Header Node
3.
4.
. 65 .
. 40 .
. 72 .
parent
5.
30
. 50 .
69
60
Ver. 1.0
80
75
Insert a node 75
2.
Header Node
3.
4.
. 65 .
. 40 .
. 72 .
parent
5.
30
. 50 .
60
Ver. 1.0
. 80
69
75
Insertion complete
Insert a node 75
2.
Header Node
3.
4.
. 65 .
. 40 .
. 72 .
parent
5.
30
. 50 .
60
Ver. 1.0
. 80
69
75
Header Node
Insert a node 35
2.
3.
4.
. 65 .
. 40 .
. 72 .
5.
30
. 50 .
69
60
Ver. 1.0
80
Header Node
Insert a node 35
2.
3.
4.
. 65 .
. 40 .
. 72 .
parent
5.
30
. 50 .
69
60
Ver. 1.0
80
Header Node
Insert a node 35
2.
3.
4.
. 65 .
. 40 .
. 72 .
parent
5.
. 50 .
30
35
Ver. 1.0
69
60
80
Header Node
Insert a node 35
2.
3.
4.
. 65 .
. 40 .
. 72 .
parent
5.
. 50 .
30
35
Ver. 1.0
69
60
80
Header Node
Insert a node 35
2.
3.
4.
. 65 .
. 40 .
. 72 .
parent
5.
. 50 .
30
35
Ver. 1.0
69
60
80
Header Node
Insert a node 35
2.
3.
4.
. 65 .
. 40 .
. 72 .
parent
5.
. 50 .
30
35
Ver. 1.0
69
60
80
Header Node
Insert a node 35
2.
3.
4.
. 65 .
. 40 .
. 72 .
parent
5.
. 50 .
30
35
Ver. 1.0
69
60
80
Header Node
Insert a node 35
2.
3.
4.
. 65 .
. 40 .
. 72 .
parent
5.
. 50 .
30
35
Ver. 1.0
69
60
80
Header Node
Insert a node 35
2.
3.
4.
. 65 .
. 40 .
. 72 .
parent
5.
. 50 .
30
35
Ver. 1.0
69
60
80
Header Node
Insert a node 35
2.
3.
4.
. 65 .
. 40 .
. 72 .
parent
5.
30
. 50 .
35
Ver. 1.0
69
60
80
Insert a node 35
1.
Header Node
2.
3.
4.
. 65 .
. 40 .
. 72 .
parent
5.
30
. 50 .
35
Ver. 1.0
69
60
80
Ver. 1.0
Session 14
Ver. 1.0
Session 14