SlideShare a Scribd company logo
Trees 
(Data Structure) 
Trupti agrawal 1
Trees Data Structures 
 Tree 
 Nodes 
 Each node can have 0 or more children 
 A node can have at most one parent 
 Binary tree 
 Tree with 0–2 children per node 
Tree Binary Tree Trupti agrawal 2
Trees 
 Terminology 
 Root  no parent 
 Leaf  no child 
 Interior  non-leaf 
 Height  distance from root to leaf 
Root node 
Interior nodes Height 
Leaf nodes 
Trupti agrawal 3
Binary Search Trees 
 Key property 
 Value at node 
 Smaller values in left subtree 
 Larger values in right subtree 
 Example 
 X > Y 
 X < Z 
Y 
X 
Z 
Trupti agrawal 4
Binary Search Trees 
 Examples 
Binary 
search trees 
Not a binary 
search tree 
5 
10 
30 
2 25 45 
5 
10 
45 
2 25 30 
5 
10 
30 
2 
25 
45 
Trupti agrawal 5
Binary Tree Implementation 
Class Node { 
int data; // Could be int, a class, etc 
Node *left, *right; // null if empty 
void insert ( int data ) { … } 
void delete ( int data ) { … } 
Node *find ( int data ) { … } 
… 
} 
Trupti agrawal 6
Iterative Search of Binary Tree 
Node *Find( Node *n, int key) { 
while (n != NULL) { 
if (n->data == key) // Found it 
return n; 
if (n->data > key) // In left subtree 
n = n->left; 
else // In right subtree 
n = n->right; 
} 
return null; 
} 
Node * n = Find( root, 5); 
Trupti agrawal 7
Recursive Search of Binary Tree 
Node *Find( Node *n, int key) { 
if (n == NULL) // Not found 
return( n ); 
else if (n->data == key) // Found it 
return( n ); 
else if (n->data > key) // In left subtree 
return Find( n->left, key ); 
else // In right subtree 
return Find( n->right, key ); 
} 
Node * n = Find( root, 5); 
Trupti agrawal 8
Example Binary Searches 
 Find ( root, 2 ) 
5 
10 
30 
2 25 45 
5 
10 
30 
2 
25 
45 
10 > 2, left 
5 > 2, left 
2 = 2, found 
5 > 2, left 
2 = 2, found 
root 
Trupti agrawal 9
Example Binary Searches 
 Find (root, 25 ) 
5 
10 
30 
2 25 45 
5 
10 
30 
2 
25 
45 
10 < 25, right 
30 > 25, left 
25 = 25, found 
5 < 25, right 
45 > 25, left 
30 > 25, left 
10 < 25, right 
25 = 25, found 
Trupti agrawal 10
Types of Binary Trees 
 Degenerate – only one child 
 Complete – always two children 
 Balanced – “mostly” two children 
 more formal definitions exist, above are intuitive ideas 
Degenerate 
binary tree 
Balanced 
binary tree 
Complete 
binary tree 
Trupti agrawal 11
Binary Trees Properties 
 Degenerate 
 Height = O(n) for n 
nodes 
 Similar to linked list 
 Balanced 
 Height = O( log(n) ) 
for n nodes 
 Useful for searches 
Degenerate 
binary tree 
Balanced 
binary tree 
Trupti agrawal 12
Binary Search Properties 
 Time of search 
 Proportional to height of tree 
 Balanced binary tree 
 O( log(n) ) time 
 Degenerate tree 
 O( n ) time 
 Like searching linked list / unsorted array 
Trupti agrawal 13
Binary Search Tree Construction 
 How to build & maintain binary trees? 
 Insertion 
 Deletion 
 Maintain key property (invariant) 
 Smaller values in left subtree 
 Larger values in right subtree 
Trupti agrawal 14
Binary Search Tree – Insertion 
 Algorithm 
1. Perform search for value X 
2. Search will end at node Y (if X not in tree) 
3. If X < Y, insert new leaf X as new left subtree for Y 
4. If X > Y, insert new leaf X as new right subtree for Y 
 Observations 
 O( log(n) ) operation for balanced tree 
 Insertions may unbalance tree 
Trupti agrawal 15
Example Insertion 
 Insert ( 20 ) 
5 
10 
30 
2 25 45 
10 < 20, right 
30 > 20, left 
25 > 20, left 
Insert 20 on left 
20 
Trupti agrawal 16
Binary Search Tree – Deletion 
 Algorithm 
1. Perform search for value X 
2. If X is a leaf, delete X 
3. Else // must delete internal node 
a) Replace with largest value Y on left subtree 
OR smallest value Z on right subtree 
b) Delete replacement value (Y or Z) from subtree 
Observation 
 O( log(n) ) operation for balanced tree 
 Deletions may unbalance tree 
Trupti agrawal 17
Example Deletion (Leaf) 
 Delete ( 25 ) 
5 
10 
30 
2 25 45 
10 < 25, right 
30 > 25, left 
25 = 25, delete 
5 
10 
30 
2 45 
Trupti agrawal 18
Example Deletion (Internal Node) 
 Delete ( 10 ) 
5 
10 
30 
2 25 45 
5 
5 
30 
2 25 45 
2 
5 
30 
2 25 45 
Replacing 10 
with largest 
value in left 
subtree 
Replacing 5 
with largest 
value in left 
subtree 
Deleting leaf 
Trupti agrawal 19
Example Deletion (Internal Node) 
 Delete ( 10 ) 
5 
10 
30 
2 25 45 
5 
25 
30 
2 25 45 
5 
25 
30 
2 45 
Replacing 10 
with smallest 
value in right 
subtree 
Deleting leaf Resulting tree 
Trupti agrawal 20
Balanced Search Trees 
 Kinds of balanced binary search trees 
 height balanced vs. weight balanced 
 “Tree rotations” used to maintain balance on insert/delete 
 Non-binary search trees 
 2/3 trees 
 each internal node has 2 or 3 children 
 all leaves at same depth (height balanced) 
 B-trees 
 Generalization of 2/3 trees 
 Each internal node has between k/2 and k children 
 Each node has an array of pointers to children 
 Widely used in databases 
Trupti agrawal 21
Other (Non-Search) Trees 
 Parse trees 
 Convert from textual representation to tree 
representation 
 Textual program to tree 
 Used extensively in compilers 
 Tree representation of data 
 E.g. HTML data can be represented as a tree 
 called DOM (Document Object Model) tree 
 XML 
 Like HTML, but used to represent data 
 Tree structured 
Trupti agrawal 22
Parse Trees 
 Expressions, programs, etc can be represented by tree 
structures 
 E.g. Arithmetic Expression Tree 
 A-(C/5 * 2) + (D*5 % 4) 
+ 
- % 
A * * 4 
/ 2 D 5 
C 5 
Trupti agrawal 23
Tree Traversal 
 Goal: visit every node of a tree 
 in-order traversal 
void Node::inOrder () { 
if (left != NULL) { 
cout << “(“; left->inOrder(); cout << “)”; 
} 
cout << data << endl; 
if (right != NULL) right->inOrder() 
}Output: A – C / 5 * 2 + D * 5 % 4 
To disambiguate: print brackets 
+ 
- % 
A * * 4 
/ 2 D 5 
C 5 
Trupti agrawal 24
Tree Traversal (contd.) 
 pre-order and post-order: 
void Node::preOrder () { 
cout << data << endl; 
if (left != NULL) left->preOrder (); 
if (right != NULL) right->preOrder (); 
} 
void Node::postOrder () { 
if (left != NULL) left->preOrder (); 
if (right != NULL) right->preOrder (); 
cout << data << endl; 
} 
+ 
- % 
A * * 4 
/ 2 D 5 
C 5 
Output: + - A * / C 5 2 % * D 5 4 
Output: A C 5 / 2 * - D 5 * 4 % + 
Trupti agrawal 25
THANK YOU…!!! 
Trupti agrawal 26

More Related Content

PPTX
Tree - Data Structure
PPTX
Datastructures using c++
PPTX
trees in data structure
PPTX
Use case diagram
PPTX
Data Structures and Algorithm - Module 1.pptx
PDF
Deep learning and Healthcare
PPT
Time complexity.ppt
PPTX
Trees in data structures
Tree - Data Structure
Datastructures using c++
trees in data structure
Use case diagram
Data Structures and Algorithm - Module 1.pptx
Deep learning and Healthcare
Time complexity.ppt
Trees in data structures

What's hot (20)

PPT
Binary search tree(bst)
PDF
Trees, Binary Search Tree, AVL Tree in Data Structures
PPTX
B and B+ tree
PPT
1.5 binary search tree
PPSX
Data Structure (Tree)
PPTX
PPTX
Threaded Binary Tree.pptx
PPTX
Binary Search Tree in Data Structure
PPTX
Introduction to data structure
PPTX
Tree in data structure
PPT
UNIT-4 TREES.ppt
PPTX
Binary Search Tree
PPTX
Tree in data structure
PPTX
Binary Tree in Data Structure
PDF
Binary tree
PPTX
Binary Search Tree
PPTX
Priority Queue in Data Structure
PPTX
Data structure - Graph
PPT
Binary tree
PPT
1.1 binary tree
Binary search tree(bst)
Trees, Binary Search Tree, AVL Tree in Data Structures
B and B+ tree
1.5 binary search tree
Data Structure (Tree)
Threaded Binary Tree.pptx
Binary Search Tree in Data Structure
Introduction to data structure
Tree in data structure
UNIT-4 TREES.ppt
Binary Search Tree
Tree in data structure
Binary Tree in Data Structure
Binary tree
Binary Search Tree
Priority Queue in Data Structure
Data structure - Graph
Binary tree
1.1 binary tree
Ad

Similar to Trees (data structure) (20)

PPT
Trees gt(1)
PPT
4.2 bst 03
PPT
Mca admission in india
PDF
CS-102 BST_27_3_14v2.pdf
PPT
data structure on bca.
PDF
CS-102 BST_27_3_14.pdf
PPT
17 Trees.ppt DSADSADSADSADSADSADSADSADSA
PPTX
Data Structures and Agorithm: DS 10 Binary Search Tree.pptx
PPT
Introduction to data structure by anil dutt
PPTX
Data Str Data Str Data Str Data Str Data Str
PPT
mitochondria moment and super computer integration.ppt
PPTX
Lecture_10 - Revised.pptx
PPT
bst.ppt
PPT
Binary search trees
PPTX
Data Strcutres-Non Linear DS-Advanced Trees
PPTX
Data Structures
PPTX
BST.pptx this isp used for learning binary search trees
PPTX
BST.pptx this is Good for data structure
PPTX
presentation 1 binary search tree in data structures.pptx
PDF
8 chapter4 trees_bst
Trees gt(1)
4.2 bst 03
Mca admission in india
CS-102 BST_27_3_14v2.pdf
data structure on bca.
CS-102 BST_27_3_14.pdf
17 Trees.ppt DSADSADSADSADSADSADSADSADSA
Data Structures and Agorithm: DS 10 Binary Search Tree.pptx
Introduction to data structure by anil dutt
Data Str Data Str Data Str Data Str Data Str
mitochondria moment and super computer integration.ppt
Lecture_10 - Revised.pptx
bst.ppt
Binary search trees
Data Strcutres-Non Linear DS-Advanced Trees
Data Structures
BST.pptx this isp used for learning binary search trees
BST.pptx this is Good for data structure
presentation 1 binary search tree in data structures.pptx
8 chapter4 trees_bst
Ad

More from Trupti Agrawal (7)

PPTX
Sorting algorithms
PPT
Searching algorithms
PPT
Searching algorithms
PPT
Linked list
PPT
Stacks and queues
PPTX
PPTX
Data structure and algorithm
Sorting algorithms
Searching algorithms
Searching algorithms
Linked list
Stacks and queues
Data structure and algorithm

Recently uploaded (20)

PDF
Microbial disease of the cardiovascular and lymphatic systems
PPTX
Institutional Correction lecture only . . .
PDF
Pre independence Education in Inndia.pdf
PDF
Basic Mud Logging Guide for educational purpose
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PPTX
Pharma ospi slides which help in ospi learning
PDF
Insiders guide to clinical Medicine.pdf
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
01-Introduction-to-Information-Management.pdf
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PPTX
Cell Structure & Organelles in detailed.
PPTX
PPH.pptx obstetrics and gynecology in nursing
PDF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PPTX
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
PDF
Mark Klimek Lecture Notes_240423 revision books _173037.pdf
PPTX
master seminar digital applications in india
Microbial disease of the cardiovascular and lymphatic systems
Institutional Correction lecture only . . .
Pre independence Education in Inndia.pdf
Basic Mud Logging Guide for educational purpose
Module 4: Burden of Disease Tutorial Slides S2 2025
Pharma ospi slides which help in ospi learning
Insiders guide to clinical Medicine.pdf
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
STATICS OF THE RIGID BODIES Hibbelers.pdf
01-Introduction-to-Information-Management.pdf
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
human mycosis Human fungal infections are called human mycosis..pptx
Cell Structure & Organelles in detailed.
PPH.pptx obstetrics and gynecology in nursing
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
Pharmacology of Heart Failure /Pharmacotherapy of CHF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
Mark Klimek Lecture Notes_240423 revision books _173037.pdf
master seminar digital applications in india

Trees (data structure)

  • 1. Trees (Data Structure) Trupti agrawal 1
  • 2. Trees Data Structures  Tree  Nodes  Each node can have 0 or more children  A node can have at most one parent  Binary tree  Tree with 0–2 children per node Tree Binary Tree Trupti agrawal 2
  • 3. Trees  Terminology  Root  no parent  Leaf  no child  Interior  non-leaf  Height  distance from root to leaf Root node Interior nodes Height Leaf nodes Trupti agrawal 3
  • 4. Binary Search Trees  Key property  Value at node  Smaller values in left subtree  Larger values in right subtree  Example  X > Y  X < Z Y X Z Trupti agrawal 4
  • 5. Binary Search Trees  Examples Binary search trees Not a binary search tree 5 10 30 2 25 45 5 10 45 2 25 30 5 10 30 2 25 45 Trupti agrawal 5
  • 6. Binary Tree Implementation Class Node { int data; // Could be int, a class, etc Node *left, *right; // null if empty void insert ( int data ) { … } void delete ( int data ) { … } Node *find ( int data ) { … } … } Trupti agrawal 6
  • 7. Iterative Search of Binary Tree Node *Find( Node *n, int key) { while (n != NULL) { if (n->data == key) // Found it return n; if (n->data > key) // In left subtree n = n->left; else // In right subtree n = n->right; } return null; } Node * n = Find( root, 5); Trupti agrawal 7
  • 8. Recursive Search of Binary Tree Node *Find( Node *n, int key) { if (n == NULL) // Not found return( n ); else if (n->data == key) // Found it return( n ); else if (n->data > key) // In left subtree return Find( n->left, key ); else // In right subtree return Find( n->right, key ); } Node * n = Find( root, 5); Trupti agrawal 8
  • 9. Example Binary Searches  Find ( root, 2 ) 5 10 30 2 25 45 5 10 30 2 25 45 10 > 2, left 5 > 2, left 2 = 2, found 5 > 2, left 2 = 2, found root Trupti agrawal 9
  • 10. Example Binary Searches  Find (root, 25 ) 5 10 30 2 25 45 5 10 30 2 25 45 10 < 25, right 30 > 25, left 25 = 25, found 5 < 25, right 45 > 25, left 30 > 25, left 10 < 25, right 25 = 25, found Trupti agrawal 10
  • 11. Types of Binary Trees  Degenerate – only one child  Complete – always two children  Balanced – “mostly” two children  more formal definitions exist, above are intuitive ideas Degenerate binary tree Balanced binary tree Complete binary tree Trupti agrawal 11
  • 12. Binary Trees Properties  Degenerate  Height = O(n) for n nodes  Similar to linked list  Balanced  Height = O( log(n) ) for n nodes  Useful for searches Degenerate binary tree Balanced binary tree Trupti agrawal 12
  • 13. Binary Search Properties  Time of search  Proportional to height of tree  Balanced binary tree  O( log(n) ) time  Degenerate tree  O( n ) time  Like searching linked list / unsorted array Trupti agrawal 13
  • 14. Binary Search Tree Construction  How to build & maintain binary trees?  Insertion  Deletion  Maintain key property (invariant)  Smaller values in left subtree  Larger values in right subtree Trupti agrawal 14
  • 15. Binary Search Tree – Insertion  Algorithm 1. Perform search for value X 2. Search will end at node Y (if X not in tree) 3. If X < Y, insert new leaf X as new left subtree for Y 4. If X > Y, insert new leaf X as new right subtree for Y  Observations  O( log(n) ) operation for balanced tree  Insertions may unbalance tree Trupti agrawal 15
  • 16. Example Insertion  Insert ( 20 ) 5 10 30 2 25 45 10 < 20, right 30 > 20, left 25 > 20, left Insert 20 on left 20 Trupti agrawal 16
  • 17. Binary Search Tree – Deletion  Algorithm 1. Perform search for value X 2. If X is a leaf, delete X 3. Else // must delete internal node a) Replace with largest value Y on left subtree OR smallest value Z on right subtree b) Delete replacement value (Y or Z) from subtree Observation  O( log(n) ) operation for balanced tree  Deletions may unbalance tree Trupti agrawal 17
  • 18. Example Deletion (Leaf)  Delete ( 25 ) 5 10 30 2 25 45 10 < 25, right 30 > 25, left 25 = 25, delete 5 10 30 2 45 Trupti agrawal 18
  • 19. Example Deletion (Internal Node)  Delete ( 10 ) 5 10 30 2 25 45 5 5 30 2 25 45 2 5 30 2 25 45 Replacing 10 with largest value in left subtree Replacing 5 with largest value in left subtree Deleting leaf Trupti agrawal 19
  • 20. Example Deletion (Internal Node)  Delete ( 10 ) 5 10 30 2 25 45 5 25 30 2 25 45 5 25 30 2 45 Replacing 10 with smallest value in right subtree Deleting leaf Resulting tree Trupti agrawal 20
  • 21. Balanced Search Trees  Kinds of balanced binary search trees  height balanced vs. weight balanced  “Tree rotations” used to maintain balance on insert/delete  Non-binary search trees  2/3 trees  each internal node has 2 or 3 children  all leaves at same depth (height balanced)  B-trees  Generalization of 2/3 trees  Each internal node has between k/2 and k children  Each node has an array of pointers to children  Widely used in databases Trupti agrawal 21
  • 22. Other (Non-Search) Trees  Parse trees  Convert from textual representation to tree representation  Textual program to tree  Used extensively in compilers  Tree representation of data  E.g. HTML data can be represented as a tree  called DOM (Document Object Model) tree  XML  Like HTML, but used to represent data  Tree structured Trupti agrawal 22
  • 23. Parse Trees  Expressions, programs, etc can be represented by tree structures  E.g. Arithmetic Expression Tree  A-(C/5 * 2) + (D*5 % 4) + - % A * * 4 / 2 D 5 C 5 Trupti agrawal 23
  • 24. Tree Traversal  Goal: visit every node of a tree  in-order traversal void Node::inOrder () { if (left != NULL) { cout << “(“; left->inOrder(); cout << “)”; } cout << data << endl; if (right != NULL) right->inOrder() }Output: A – C / 5 * 2 + D * 5 % 4 To disambiguate: print brackets + - % A * * 4 / 2 D 5 C 5 Trupti agrawal 24
  • 25. Tree Traversal (contd.)  pre-order and post-order: void Node::preOrder () { cout << data << endl; if (left != NULL) left->preOrder (); if (right != NULL) right->preOrder (); } void Node::postOrder () { if (left != NULL) left->preOrder (); if (right != NULL) right->preOrder (); cout << data << endl; } + - % A * * 4 / 2 D 5 C 5 Output: + - A * / C 5 2 % * D 5 4 Output: A C 5 / 2 * - D 5 * 4 % + Trupti agrawal 25