threaded binarytree&heapsort
TRANSCRIPT
Threaded Binary Tree
Definition
A binary search tree in which each node uses an otherwise-empty left child link to refer to the node's in-order predecessor and an empty right child link to refer to its in-order successor.
Threaded Binary Trees
• Two many null pointers in current representationof binary trees
n: number of nodesnumber of non-null links: n-1total links: 2nnull links: 2n-(n-1)=n+1
• Replace these null pointers with some useful“threads”.
Threaded Binary Trees (Continued)
If ptr->left_child is null,
replace it with a pointer to the node that would be
visited before ptr in an inorder traversal
If ptr->right_child is null,
replace it with a pointer to the node that would be
visited after ptr in an inorder traversal
A Threaded Binary Tree
A
B C
GE
I
D
H
F
root
dangling
dangling
inorder traversal:
H, D, I, B, E, A, F, C, G
TRUE � � FALSE
Data Structures for Threaded BT
typedef struct threaded_tree
*threaded_pointer;
typedef struct threaded_tree {
short int left_thread;
threaded_pointer left_child;
char data;
threaded_pointer right_child;
short int right_thread; };
left_thread left_child data right_child right_thread
FALSE: childTRUE: thread
• Dangling can be solved as follows
– Introduce a header node.
– The left and right pointer of the header node
are treated as normal links and are initialized
to point to header node itself
Memory Representation of A Threaded BT
f f--
f fA
f fCf fB
t tE t tF t Gf fD
t tIt tH
root
• Right-threaded tree:
• A variant of a threaded tree in which only the right thread, i.e. link to the successor, of each node is maintained.
Advantages of Threaded Tree
• It reduces the time complexity of algorithm.
• Operation like traversal, insertion, deletion can be done without using recursive algorithm.
• It becomes very easy to find out inorder successor of any node ‘n’ in a threaded binary tree. If the right thread of n is true or 1 then the node pointed by its right pointer is the desired information successor. If the right thread of ‘n’ is false or 0 then the inorder successor must be on the right subtree of ‘n’.
Application of Tree
• Expression Tree
• Game Tree
Infix, prefix, and postfix notation
• representation of math expressions as a binary tree
– operators have their left and right operands as
subtrees
– literal values are stored as leaves
• notations
– prefix: Polish notation
– infix: standard notation
– postfix: reverse Polish notation
Expression example
Expression tree example
Game Tree• Tree generated for games such as tic-tac-
toe
• Consider all the possible position for the given position. And find the best solution to win.
Heap Sort
• It is based on tree structure.
• Heap sort is in two phase
– The entries are arranged in the list satisfying
the requirement of a heap
– We repeatedly remove the top of the heap
and promote another entry to take its place.
Construction of heap
• First construct a complete binary tree
• There are two types of heap- min heap or ascending heap or max heap or descending heap
• Consider the elements present at a level one less than the maximum level. They are converted to heap in the same way as replacing the node of a heap.
• In next step the elements that are present at a level two less than the maximum level of the tree are considered
• Likewise in each step one level is decremented and all the subtrees at that level are converted to heaps
• Eg 13, 4, 11, 15, 59, 27, 19, 3, 92, 5
Phase two
• Remove the root of tree and place it to last and re-create the heap in descending order and repeat the process.
• Solution on board.