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

Tree1 PDF

The document provides an overview of trees as a data structure. It defines common tree terminology like root, parent, child, leaf, internal nodes, etc. It describes two methods for representing trees - list representation and left child right sibling representation. It also explains different tree traversal algorithms - inorder, preorder, postorder and level order traversal and provides pseudocode for implementing each traversal.

Uploaded by

PK Tuber05
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
76 views

Tree1 PDF

The document provides an overview of trees as a data structure. It defines common tree terminology like root, parent, child, leaf, internal nodes, etc. It describes two methods for representing trees - list representation and left child right sibling representation. It also explains different tree traversal algorithms - inorder, preorder, postorder and level order traversal and provides pseudocode for implementing each traversal.

Uploaded by

PK Tuber05
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 29

UNIT IV

TREES
Syllabus
 General trees – Terminology –
Representation of trees – Tree traversal-
Binary tree – Representation – Expression tree –
Binary tree traversal - Threaded Binary Tree -
Binary Search Tree – Construction - Searching -
Binary Search Tree- Insertion – Deletion - AVL
trees – Rotation AVL trees – Insertion – Deletion
- B-Trees – Splay trees - Red-Black Trees
Tree
 Tree is a non-linear data structure which
organizes data in hierarchical structure
and this is a recursive definition.
 Tree data structure is a collection of data
(Node).
 Every individual element is called
as Node. Node in a tree data structure,
stores the actual data of that particular
element and link to next element in
hierarchical structure
 In a tree data structure, if we
have N number of nodes then we can
have a maximum of N-1 number of links.
Terminology
1. Root
The first node is called as Root Node.
Every tree must have root node.
2. Edge
 In a tree data structure, the connecting link
between any two nodes is called as EDGE.
 In a tree with 'N' number of nodes there will be
a maximum of 'N-1' number of edges.
3. Parent
 The node which is predecessor of any node is called
as PARENT NODE.
 In simple words, the node which has branch from it to
any other node is called as parent node.
 Parent node can also be defined as "The node which
has child / children".
4. Child
 The node which is descendant of any node is
called as CHILD Node.
 In simple words, the node which has a link from
its parent node is called as child node.
 In a tree, all the nodes except root are child
nodes.
5. Siblings
 In a tree data structure, nodes which belong to
same Parent are called as SIBLINGS.
 In simple words, the nodes with same parent
are called as Sibling nodes.
6. Leaf
 In a tree data structure, the node which does not
have a child is called as LEAF Node.
 The leaf nodes are also called as External Nodes.
 In a tree, leaf node is also called as 'Terminal'
node.
7. Internal Nodes
 In a tree data structure, the node which has at least one
child is called as INTERNAL Node.
 In simple words, an internal node is a node with atleast
one child.
 In a tree data structure, nodes other than leaf nodes are
called as Internal Nodes.
 The root node is also said to be Internal Node if
the tree has more than one node.
 Internal nodes are also called as 'Non-Terminal'
nodes.
8. Degree
 The total number of children of a node is called
as DEGREE of that Node.
 In simple words, the Degree of a node is total number
of children it has.
 The highest degree of a node among all the nodes in a
tree is called as 'Degree of Tree'
9. Level
 The root node is said to be at Level 0 and the children
of root node are at Level 1 and the children of the
nodes which are at Level 1 will be at Level 2 and so on...
 In simple words, in a tree each step from top to bottom
is called as a Level and the Level count starts with '0'
and incremented by one at each level (Step).
10. Height
 The total number of edges from leaf node to a
particular node in the longest path is called
as HEIGHT of that Node.
 In a tree, height of the root node is said to
be height of the tree.
 In a tree, height of all leaf nodes is '0'.
11. Depth
 The total number of edges from root node to a
particular node is called as DEPTH of that Node.
 In a tree, the total number of edges from root node to a
leaf node in the longest path is said to be Depth of the
tree.
 In a tree, depth of the root node is '0'.
12. Path
 The sequence of Nodes and Edges from one
node to another node is called
as PATH between that two Nodes.
 Length of a Path is total number of nodes in
that path.
 Example the path A - B - E - J has length 4.
13. Sub Tree
 Each child from a node forms a subtree
recursively.
Tree Representations
 A tree data structure can be represented in
two methods.
◦ List Representation
◦ Left Child - Right Sibling Representation
List Representation
 In this representation, we use two types of nodes
◦ Data node
◦ Reference node
 We start with a node with data from root node in the
tree.
 Then it is linked to an internal node through a reference
node and is linked to any other node directly. This
process repeats for all the nodes in the tree.
Left Child - Right Sibling
Representation
 We use list with one type of node which consists
of three fields namely Data field, Left child
reference field and Right sibling reference field.
◦ Data field stores the actual value of a node
◦ Left reference field stores the address of the left child
◦ Right reference field stores the address of the right
sibling node.
Tree Traversal
 Depth First Traversal
(a) Inorder
(b) Preorder
(c) Postorder

 Breadth First Traversal or Level Order Tree Traversal


Level order traversal of the above tree is 1 2 3 4 5
In-order Traversal
Algorithm
void inorder(struct node * root);
{
if(root != NULL)
{
inorder(roo-> lc);
printf("%d\t",root->data);
inorder(root->rc);
}
}

In-Order Traversal for above example of binary tree is


I - D - J - B - F -A - G - K - C - H
Pre-order Traversal
Algorithm
void Preorder(struct node * root);
{
if(root != NULL)
{
printf("%d\t",root->data);
preorder(roo-> lc);
preorder(root->rc);
}
}

Pre-Order Traversal for above example of binary tree is


A–B–D–I–J–F–C–G–K–H
Post-order Traversal
Algorithm
void postorder(struct node * root);
{
if(root != NULL)
{
postorder(root-> lc);
postorder(root->rc);
printf("%d\t",root->data);
}
}

In-Order Traversal for above example of binary tree is


I – J – D – F – B – K – G – H – C –A
Level Order Tree Traversal
 Algorithm:
 For each node, first the node is visited and then
it’s child nodes are put in a FIFO queue.
printLevelorder(tree)
1) Create an empty queue q
2) temp_node = root /*start from root*/
3) Loop while temp_node is not NULL
a) print temp_node->data.
b) Enqueue temp_node’s children (first left then right
children) to q
c) Dequeue a node from q and assign it’s value to
temp_node
Animation
 http://visualgo.net/dfsbfs
Solve Worksheet 1
Thank You

You might also like