Unit-3: Non-Linear Data Structure
Unit-3: Non-Linear Data Structure
Unit-3
Non-Linear Data
Structure
Tree By : Twisa Mehta
Tree Traversal
The most common operations performed on tree structure is that of traversal.
This is a procedure by which each node in the tree is processed exactly once in a systematic
manner.
There are three ways of traversing a binary tree. A
1. Preorder Traversal
2. Inorder Traversal B D
3. Postorder Traversal
C E G
F
Preorder Traversal
Preorder traversal of a binary tree is defined as follow
1. Process the root node A ✓
A B C D E F G
Inorder Traversal
Inorder traversal of a binary tree is defined as follow
A ✓
1. Traverse the left subtree in Inorder
2. Process the root node
B ✓ D ✓
3. Traverse the right subtree in Inorder
C ✓ E ✓ G ✓
F ✓
C B A E F D G
Postorder Traversal
Postorder traversal of a binary tree is defined as follow
A ✓
1. Traverse the left subtree in Postorder
2. Traverse the right subtree in Postorder
B ✓ D ✓
3. Process the root node
C ✓ E ✓ G ✓
F ✓
2 3 25 75
3 1
6 22
4 22 40 60 80
5 45
5
15 30 90
23 65
34 78
Linked Representation of Binary Tree
T
LPTR DATA RPTR
A
B D
B D
C E G
C E G
F
F
Algorithm of Binary Tree Traversal
Preorder Traversal - Procedure: RPREORDER(T)
Inorder Traversal - Procedure: RINORDER(T)
Postorder Traversal - Procedure: RPOSTORDER(T)
Procedure: RPREORDER(T)
This procedure traverses the tree in preorder, in a recursive manner.
T is root node address of given binary tree LPTR DATA RPTR
Node structure of binary tree is described as below Typical node of Binary Tree
Node structure of binary tree is described as below. Typical node of Binary Tree
Node structure of binary tree is described as below. Typical node of Binary Tree
Postorder : G D B H I E F C AA
A A
Inorder : D G B AA H E I C F
B C B C
A
D,G H,E,I F D E F
D,G,B H,E,I,C,F
G H I
Construct Binary Tree from Traversal
Preorder :GG B Q A C K F P D E R H Inorder : Q B K C F AG G P E D H R
Root left right left Root right
G G G
B P
QBKCFA PED HR B P
D Q A D
Q A
G
C E R
KCF E HR
B P
K F H
Q KCFA ED HR
Linked Representation of Binary Tree
T
LPTR DATA RPTR
A
B D
B D
C E G
C E G
F
F
Threaded Binary Tree
The wasted NULL links in the binary tree storage representation can be replaced by threads
A binary tree is threaded according to particular traversal order. e.g.: Threads for the
inorder traversals of tree are pointers to its higher nodes, for this traversal order
In-Threaded Binary Tree
If left link of node P is null, then this link is replaced by the address of its predecessor
If right link of node P is null, then this link is replaced by the address of its successor
Because the left or right link of a node can denote either structural link or a thread, we
must somehow be able to distinguish them
Threaded Binary Tree
Method 1:- Represent thread a Negative address
Method 2:- To have a separate Boolean flag for each of left and right pointers, node
structure for this is given below
LPTR LTHREAD DATA RTHREAD RPTR
Typical node of Threaded Binary Tree
B D A
C E G
B D
C E G
Inorder Traversal
C B A E F D G
F
B E
A
C D F H
B E
G
Inorder Traversal
C D F H
CBDAFGEH
G
Advantages of Threaded Binary Tree
Inorder traversal is faster than unthreaded version as stack is not required.
Effectively determines the predecessor and successor for inorder traversal, for unthreaded
tree this task is more difficult.
A stack is required to provide upward pointing information in binary tree which threading
provides without stack.
It is possible to generate successor or predecessor of any node without having over head of
stack with the help of threading.
Disadvantages of Threaded Binary Tree
Threaded trees are unable to share common sub trees.
If Negative addressing is not permitted in programming language, two additional fields are
required.
Insertion into and deletion from threaded binary tree are more time consuming because
both thread and structural link must be maintained.
Binary Search Tree : property (keys(left) < key(root) < keys(right))
A binary search tree is a binary tree in which each node possessed a key that satisfy the
following conditions
1. All key (if any) in the left sub tree of the root precedes the key in the root
2. The key in the root precedes all key (if any) in the right sub tree
3. The left and right sub trees of the root are again search trees
Construct Binary Search Tree (BST)
Construct binary search tree for the following data
50 , 25 , 75 , 22 , 40 , 60 , 80 , 90 , 15 , 30
50
25 75
22 40 60 80
15 30 90
Delete node a
a
Delete from Leaf Node
a Delete node a b
Delete node a
a C
b C
The root of the Binary Tree is the Root of the Generic Tree.
The left child of a node in the Generic Tree is the Left child of that
node in the Binary Tree.
The right sibling of any node in the Generic Tree is the Right child
of that node in the Binary Tree.
33
33
Example
34
34
LL Rotation
35
35
Example
36
36
LR Rotation
37
37
2-3 trees : use all of them to prevent having an unbalanced tree
and improves average access time.
39
39
Weight balanced tree
• weight-balanced binary trees (WBTs) are a type of self-balancing binary search trees
that can be used to implement dictionaries (maps) and sequences.
• A weight-balanced binary tree is a binary tree which is balanced based on knowledge
of the probabilities of searching for each individual node. Within each subtree, the
node with the highest weight appears at the root. This can result in more efficient
searching performance. Construction of such a tree is similar to that of a Treap, but
node weights are chosen randomly in the latter.
• The letters represent node values and the numbers represent node weights.
• The weight may be thought of as a probability or activity count associated with the
node. In the diagram, the root is G because its weight is the greatest in the tree. The
left subtree begins with A because, out of all nodes with values that come before G, A
has the highest weight. Similarly, N is the highest-weighted node that comes after G.
40
40