0% found this document useful (0 votes)
2 views13 pages

Threaded Binary Tree

A threaded binary tree is a binary tree where NULL link fields are replaced with special links called threads to optimize storage. There are two types: one-way threaded binary trees, which can be right or left threaded, and two-way threaded binary trees, where both left and right NULL fields are replaced with threads. The document also includes an algorithm for inorder traversal of a threaded binary tree.

Uploaded by

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

Threaded Binary Tree

A threaded binary tree is a binary tree where NULL link fields are replaced with special links called threads to optimize storage. There are two types: one-way threaded binary trees, which can be right or left threaded, and two-way threaded binary trees, where both left and right NULL fields are replaced with threads. The document also includes an algorithm for inorder traversal of a threaded binary tree.

Uploaded by

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

Threaded Binary Tree

 What do you mean by Threaded Binary Tree?

 In the linked representation of binary trees, more than one half of the link
fields contain NULL values which results in wastage of storage space.
 If a binary tree consists of n nodes then n+1 link fields contain NULL values.
So in order to effectively manage the space, a method was devised by Perlis
and Thornton in which the NULL links are replaced with special links known
as threads.
 Such binary trees with threads are known as threaded binary trees.

 Each node in a threaded binary tree either contains a link to its child node or
thread to other nodes in the tree.
Types of Threaded Binary Tree

 There are two types of threaded Binary Tree:


1. One-way threaded Binary Tree
2. Two-way threaded Binary Tree
One-way threaded Binary trees:
 In one-way threaded binary trees, a thread will appear either in the right or left link
field of a node.

 If it appears in the right link field of a node then it will point to the next node that will
appear on performing in order traversal.

 Such trees are called Right threaded binary trees.

 If thread appears in the left field of a node then it will point to the nodes inorder
predecessor. Such trees are called Left threaded binary trees.

 Left threaded binary trees are used less often as they don't yield the last advantages of
right threaded binary trees.

 In one-way threaded binary trees, the right link field of last node and left link field of
first node contains a NULL.

 In order to distinguish threads from normal links they are represented by dotted lines.
 The above figure shows the inorder traversal of this binary tree yields D, B,
E, A, C, F.
 When this tree is represented as a right threaded binary tree, the right link
field of leaf node D which contains a NULL value is replaced with a thread
that points to node B which is the inorder successor of a node D.
 In the same way other nodes containing values in the right link field will
contain NULL value.
Two-way threaded Binary Trees:
 In two-way threaded Binary trees, the right link field of a node containing NULL
values is replaced by a thread that points to nodes inorder successor and left field
of a node containing NULL values is replaced by a thread that points to nodes
inorder predecessor.
 The above figure shows the inorder traversal of this binary tree yields D, B,
E, G, A, C, F.
 If we consider the two-way threaded Binary tree, the node E whose left field
contains NULL is replaced by a thread pointing to its inorder predecessor i.e.
node B.
 Similarly, for node G whose right and left linked fields contain NULL values
are replaced by threads such that right link field points to its inorder
successor and left link field points to its inorder predecessor.
 In the same way, other nodes containing NULL values in their link fields are
filled with threads.
 In the above figure of two-way threaded Binary tree, we noticed that no left thread is
possible for the first node and no right thread is possible for the last node.
 This is because they don't have any inorder predecessor and successor respectively.
This is indicated by threads pointing nowhere.
 So in order to maintain the uniformity of threads, we maintain a special node called
the header node.
 The header node does not contain any data part and its left link field points to the
root node and its right link field points to itself.
 If this header node is included in the two-way threaded Binary tree then this node
becomes the inorder predecessor of the first node and inorder successor of the last
node.
 Now threads of left link fields of the first node and right link fields of the last node
will point to the header node.
Algorithm for Inorder Traversal of Threaded Binary Tree:
Algorithm Inorder(I)
{
ThreadedTreeNode *Header;
Header=I;
while(1)
{
I=fnFindInorder_Successor(H);
if(I==Header)
return;
else
print(I->info);
}
}

You might also like