0% found this document useful (0 votes)
6 views

Unit-3 Non-Linear Data Structure Part-2 (Tree - II)

Uploaded by

dhruvilp069
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

Unit-3 Non-Linear Data Structure Part-2 (Tree - II)

Uploaded by

dhruvilp069
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 27

Data Structures (DS)

GTU # 3130702

Unit-3
Non-Linear Data Structure
Tree Part-2

Dr. Pradyumansinh Jadeja


Computer Engineering Department
Darshan Institute of Engineering & Technology, Rajkot
[email protected]
+91 9879461848
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

#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree


Dr. Pradyumansinh U. Jadeja 2
Preorder Traversal
 Preorder traversal of a binary tree is defined as follow
1. Process the root node A ✓

2. Traverse the left subtree in preorder


3. Traverse the right subtree in preorder B ✓ D ✓

 If particular subtree is empty (i.e., node has no left or


C ✓ E ✓ G ✓
right descendant) the traversal is performed by doing
nothing.
F ✓
 In other words, a null subtree is considered to be
fully traversed when it is encountered. Preorder traversal of a given tree
as
A B C D E F G

#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree


Dr. Pradyumansinh U. Jadeja 3
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 ✓

Inorder traversal of a given tree


as
C B A E F D G

#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree


Dr. Pradyumansinh U. Jadeja 4
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 ✓

Postorder traversal of a given tree


as
C B F E G D A

#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree


Dr. Pradyumansinh U. Jadeja 5
Converse Traversal
 If we interchange left and right words in the preceding definitions, we obtain three new
traversal orders which are called
 Converse Preorder Traversal: A D G E F B C
 Converse Inorder Traversal: G D F E A B C
 Converse Postorder Traversal: G F E D C B A

#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree


Dr. Pradyumansinh U. Jadeja 6
Write Pre/In/Post Order Traversal
1 50 15

2 3 25 3 1
75

6 22
4 22 40 60 80

5 45
5
15 30 90

23 65

34 78

#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree


Dr. Pradyumansinh U. Jadeja 7
Linked Representation of Binary Tree
T
LPTR DATA RPTR

Typical node of Binary A


Tree

A
B D

B D

C E G
C E G

F
F

#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree


Dr. Pradyumansinh U. Jadeja 8
Algorithm of Binary Tree Traversal
 Preorder Traversal - Procedure: RPREORDER(T)
 Inorder Traversal - Procedure: RINORDER(T)
 Postorder Traversal - Procedure: RPOSTORDER(T)

#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree


Dr. Pradyumansinh U. Jadeja 9
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
1. [Check for Empty Tree] 3. [Process the Right Sub Tree]
IF T = NULL IF RPTR (T) ≠ NULL
THEN write (‘Empty Tree’) THEN RPREORDER (RPTR (T))
return 4. [Finished]
ELSE write (DATA(T)) Return
2. [Process the Left Sub Tree]
IF LPTR (T) ≠ NULL
THEN RPREORDER (LPTR (T))

#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree


Dr. Pradyumansinh U. Jadeja 10
Procedure: RINORDER(T)
 This procedure traverses the tree in InOrder, 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
1. [Check for Empty Tree] 4. [Process the Right Sub Tree]
IF T = NULL IF RPTR (T) ≠ NULL
THEN write (‘Empty Tree’) THEN RINORDER (RPTR (T))
return 5. [Finished]
2. [Process the Left Sub Tree] Return
IF LPTR (T) ≠ NULL
THEN RINORDER (LPTR (T))
3. [Process the Root Node]
write (DATA(T))

#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree


Dr. Pradyumansinh U. Jadeja 11
Procedure: RPOSTORDER(T)
 This procedure traverses the tree in PostOrder, 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
1. [Check for Empty Tree] 4. [Process the Root Node]
IF T = NULL write (DATA(T))
THEN write (‘Empty Tree’) 5. [Finished]
return Return
2. [Process the Left Sub Tree]
IF LPTR (T) ≠ NULL
THEN RPOSTORDER (LPTR (T))
3. [Process the Right Sub Tree]
IF RPTR (T) ≠ NULL
THEN RPOSTORDER (RPTR (T))

#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree


Dr. Pradyumansinh U. Jadeja 12
Construct Binary Tree from Traversal
Construct a Binary tree from the given Inorder and Postorder traversals
• Step 1: Find the root node
• Preoder Traversal – first node is root node
Inorder : D G B A H E I C F • Postoder Traversal last node is root node
Postorder : G D B H I E F C A • Step 2: Find Left & Right Sub Tree
• Inorder traversal gives Left and right sub tree

Postorder : G D B H I E F C
AA
A A
Inorder : D G BAA H E I C F

B C B C
A
D, E
D,G, H,E,I,C, H,E,I F D F
G
B F
G H I

#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree


Dr. Pradyumansinh U. Jadeja 13
Construct Binary Tree from Traversal
Preorder : GGB Q A C K F P D E R H Inorder : Q B K C F AGG P E D H R

G G G

QBKCF
PED HR B P B P
A

D Q A D
Q A
G
KC C E R
B E HR
P F

KCF ED H K F H
Q
A R

#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree


Dr. Pradyumansinh U. Jadeja 14
Linked Representation of Binary Tree
T
LPTR DATA RPTR

Typical node of Binary A


Tree

A
B D

B D

C E G
C E G

F
F

#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree


Dr. Pradyumansinh U. Jadeja 15
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

#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree


Dr. Pradyumansinh U. Jadeja 16
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
RTHREA
LPTR LTHREAD DATA RPTR
D
Typical node of Threaded Binary Tree

• LTHREAD = true = Denotes leaf thread link


HEAD
• LTHREAD = false = Denotes leaf structural link
• RTHREAD = true = Denotes right threaded link
• RTHREAD = false = Denotes right structural link

Head node is simply another node which serves as the


predecessor and successor of first and last tree nodes.
Tree is attached to the left branch of the head node.

#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree


Dr. Pradyumansinh U. Jadeja 17
Threaded Binary Tree
HEAD
A

B D A

C E G
B D

C E G
Inorder Traversal

C B A E F D G
F

Fully In-Threaded Binary Tree


#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree
Dr. Pradyumansinh U. Jadeja 18
Threaded Binary Tree
Construct Right In-Threaded Binary Tree of given Tree
A
HEAD

B E

A
C D F H

B E
G

Inorder Traversal
C D F H
CBDAFGEH
G
#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree
Dr. Pradyumansinh U. Jadeja 19
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.

#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree


Dr. Pradyumansinh U. Jadeja 20
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.

#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree


Dr. Pradyumansinh U. Jadeja 21
Binary Search Tree (BST)
 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

#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree


Dr. Pradyumansinh U. Jadeja 22
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

Construct binary search tree for the following data


10, 3, 15, 22, 6, 45, 65, 23, 78, 34, 5
#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree
Dr. Pradyumansinh U. Jadeja 23
Search a node in Binary Search Tree
 To search for target value.
 We first compare it with the key at root of the tree.
 If it is not same, we go to either Left sub tree or Right sub tree as appropriate and repeat the
search in sub tree.
 If we have In-Order List & we want to search for specific node it requires O(n) time.
 In case of Binary tree it requires O(Log2n) time to search a node.

#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree


Dr. Pradyumansinh U. Jadeja 24
Delete node from Binary Search Tree

Delete node a

a Delete from Leaf Node

a Delete node a b

Delete from Non Terminal (Empty Left Sub Tree)


#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree
Dr. Pradyumansinh U. Jadeja 25
Delete node from BST

Delete node a

a C

b C

Delete from Non Terminal (Neither Sub Tree is Empty)

#3130702 (DS)  Unit 3 – Non-Linear Data Structure (Tree


Dr. Pradyumansinh U. Jadeja 26
Data Structures (DS)
GTU # 3130702

Thank
You

Dr. Pradyumansinh Jadeja


Computer Engineering Department
Darshan Institute of Engineering & Technology, Rajkot
[email protected]
+91 9879461848

You might also like