The document discusses threaded binary trees, which optimize the use of null pointers by replacing them with threads that point to in-order predecessors and successors. It outlines the structure, advantages, and disadvantages of threaded binary trees compared to normal binary trees, highlighting efficient memory usage and traversal but noting complexities in insertion and deletion. The presentation also includes traversal algorithms and examples for better understanding of threaded binary trees.
Introduction to the presentation and its presenters.
Definition of a threaded binary tree, utilizes null pointers for in-order predecessor and successor.Details on null pointers in a binary tree, generalizations about pointer structure.
Description of one-way threaded trees using in-order successors.
Explanation of two-way threading and its structure.
Approach to solve dangling pointers using a header node.
Node structure of threaded binary trees defined for this study.
Traversal process details in a threaded binary tree, including outputs.
Comparison of threaded binary trees with normal binary trees with pros and cons.
Procedure for inserting nodes into a threaded binary tree with examples.
Advantages of reduced memory use and improved traversal, versus complexity.
General applications of threaded binary trees in computing.
Final thoughts on the benefits and limitations of threaded binary trees.
List of sources for further reading and reference materials.
Contact information for inquiries related to the presentation.
Presented to: Md. Shamsujjoha Senior Lecturer of CSE department East West University Presented by: Md. Khabbab Hossain Tusher Date:03/04/2016
A binary searchtree 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. Definition Slide 1
A B C Null DNull Null E Null Null G NullNull F Null Slide 3 Threaded binary tree
6.
Threaded Binary Tree In above binary tree, there are 8 null pointers & actual 6 pointers. In all there are 14 pointers. We can generalize it that for any binary tree with n nodes there will be (n+1) null pointers and 2n total pointers. The objective here to make effective use of these null pointers. A. J. perils & C. Thornton jointly proposed idea to make effective use of these null pointers. According to this idea we are going to replace all the null pointers by the appropriate pointer values called threads. Slide 4
7.
And binarytree with such pointers are called threaded tree. In the memory representation of a threaded binary tree, it is necessary to distinguish between a normal pointer and a thread. Slide 5
8.
Threaded Binary Tree: One-Way We will use the right thread only in this case. To implement threads we need to use in-order successor of the tree Slide 6
Two way ThreadedTree/Double Threads Again two-way threading has left pointer of the first node and right pointer of the last node will contain the null value. The header nodes is called two-way threading with header node threaded binary tree. Slide 8
• Dangling canbe 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. Slide 10
Structure of ThreadBT Node structure For the purpose of our evaluation algorithm, we assume each node has five fields: LTag Left data Right RTag We define this node structure in C as: Struct Node{ int data; struct Node *Left,*Right; bool Ltag; boolRtag; }; Slide 12
15.
L.Tag L.Child headR.child R.Tag 1 A 1 1 1 0 D 0 0 E 0 0 F 0 0 G 0 1 B 1 1 C 1 Inorder Traversal of The tree: D B E A F C G Slide 13
16.
Threaded Tree Traversal •We start at the leftmost node in the tree, print it, and follow its right thread • If we follow a thread to the right, we output the node and continue to its right. • If we follow a link to the right, we go to the leftmost node, print it, and continue. Slide 14
void inOrder(struct Node*root) { struct Node *cur = leftmost(root); while (cur != NULL) { printf("%d ", cur->data); // If this node is a thread node, then go to // inorder successor if (cur->rightThread) cur = cur->right; else // Else go to the leftmost child in right subtree cur = leftmost(cur->right); } } 8 75 3 1 6 9 Slide 22
25.
Threaded Binary Trees In threaded binary trees, The null pointers are used as thread. We can use the null pointers which is a efficient way to use computers memory. Traversal is easy. Completed without using stack or reccursive function. Structure is complex. Insertion and deletion takes more time. Normal Binary Trees In a normal binary trees, the null pointers remains null. We can’t use null pointers so it is a wastage of memory. Traverse is not easy and not memory efficient. Less complex than Threaded binary tree. Less Time consuming than Threaded Binary tree. Comparison of Threaded BT Slide 23
26.
Inserting anode to Threaded Binary Tree: Inserting a node X as the right child of a nodes. 1st Case: - If G has an empty right subtree, then the insertion is simple Slide 24
27.
A B D Inserting X asa right child of G E C F G Head X New inorder traversal is: D,B,E,A,F,C,G,X Slide 25
28.
2nd Case: If theright subtree of C is not empty, then this right child is made the right child of X after insertion. Slide 26
Advantage 1. Bydoing threading we avoid the recursive method of traversing a Tree , which doesn’t use of stack and consumes a lot of memory and time . 2 . The node can keep record of its root . 3. Backward Traverse is possible. 4. Applicable in most types of the binary tree. Disadvantage 1. This makes the Tree more complex . 2. More prone to errors when both the child are not present & both values of nodes pointer to their ancestors. 3. Lot of time consumes when deletion or insertion is performed. Threaded binary tree Slide 28
31.
Same asany kind of Binary Tree. Used in search and Traverse based work APPLICATIONS Slide 29
32.
Conclusion Excellent conceptin modern computer science. Saves Time and memory. Traversal and search are very efficient. Insertion and deletion are not so efficient. Slide 30