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

DS Unit 2

This document discusses trees as a data structure. It defines key tree terminology like root, child, parent, leaf nodes, and describes binary tree representations using arrays and linked lists. It also covers different types of binary trees and tree traversal algorithms like in-order, pre-order, and post-order traversals. Threaded binary trees are introduced which use NULL pointers as threads to improve traversal efficiency.

Uploaded by

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

DS Unit 2

This document discusses trees as a data structure. It defines key tree terminology like root, child, parent, leaf nodes, and describes binary tree representations using arrays and linked lists. It also covers different types of binary trees and tree traversal algorithms like in-order, pre-order, and post-order traversals. Threaded binary trees are introduced which use NULL pointers as threads to improve traversal efficiency.

Uploaded by

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

Data Structures

Unit-2
Trees
Trees
⚫Tree data structure is a collection of data (Node) which
is organized in hierarchical structure recursively
⚫In tree data structure, 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.
Tree
Tree Terminology
⚫1. Root:
⚫In a tree data structure, the first node is called as Root Node.
⚫Every tree must have a root node
⚫The root node is the origin of the tree data structure.
⚫ In any tree, there must be only one root node.
Tree Terminology
⚫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.
Tree Terminology
⚫3. Parent
⚫In a tree data structure, the node which is a predecessor
of any node is called as PARENT NODE.
⚫The node which has a branch from it to any other node
is called a parent node.
Tree Terminology
⚫ 4. Child
⚫ In a tree data structure, 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, any parent node can have any number of child nodes. In a tree, all
the nodes except root are child nodes.
Tree Terminology
⚫5. Siblings
⚫In a tree data structure, nodes which belong to same
Parent are called as SIBLINGS
Tree Terminology
⚫6. Leaf
⚫In a tree data structure, the node which does not have a
child is called as LEAF Node.
⚫In a tree data structure, the leaf nodes are also called
as External Nodes.
⚫ Leaf node is also called as 'Terminal' node.
Tree Terminology
⚫7. Internal Nodes
⚫In a tree data structure, the node which has atleast one child is
called as INTERNAL Node.
⚫Nodes other than leaf nodes are called as Internal Nodes
⚫Internal nodes are also called as 'Non-Terminal' nodes.
Tree Terminology
⚫8. Degree
⚫In a tree data structure, the total number of children of
a node is called as DEGREE of that Node. 
⚫The highest degree of a node among all the nodes in a
tree is called as 'Degree of Tree'
Tree Terminology
⚫9. Level
⚫In a tree data structure, 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...
Tree Terminology
⚫10. Height
⚫ In a tree data structure, the total number of edges from leaf
node to a particular node in the longest path is called
as HEIGHT of that Node.
⚫  Height of the root node is said to be height of the tree.
⚫ In a tree, height of all leaf nodes is '0'.
Tree Terminology
⚫ 11. Depth
⚫ In a tree data structure, the total number of egdes 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 simple words, the highest depth of any leaf node in a tree is
said to be depth of that tree.
⚫ In a tree, depth of the root node is '0'.
Tree Terminology
⚫12. Path
⚫ In a tree data structure, 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.
⚫  In below example the path A - B - E - J has length 4.
Tree Terminology
⚫13. Sub Tree
⚫In a tree data structure, each child from a node forms a
subtree recursively.
⚫Every child node will form a subtree on its parent node.
Binary Tree
⚫A binary tree is a special
type of tree data structure in
which every node can have
a maximum of 2 children.
⚫ One is known as a left child
and the other is known as
right child.
⚫In a binary tree, every node
can have either 0 children or
1 child or 2 children but not
more than 2 children.
Types of Binary Tree
⚫1. Strictly Binary Tree:
⚫A binary tree in which every node has either two or
zero number of children is called Strictly Binary Tree
⚫Strictly binary tree is also called as Full Binary
Tree or Proper Binary Tree or 2-Tree
Types of Binary Tree
⚫2. Complete Binary Tree
⚫A binary tree in which every internal node has exactly two
children and all leaf nodes are at same level is called
Complete Binary Tree.
⚫Complete binary tree is also called as Perfect Binary Tree
Types of Binary Tree
⚫3. Extended Binary Tree
⚫The full binary tree obtained by adding dummy nodes
to a binary tree is called as Extended Binary Tree.
Binary Tree Representations
⚫A binary tree data structure is represented using two
methods. Those methods are as follows...
⚫1.Array Representation
⚫2.Linked List Representation
Array Representation of Binary Tree
⚫In array representation of a binary tree, use one-
dimensional array (1-D Array) to represent a binary tree.

•To represent a binary tree of


depth 'n' using array
representation, we need one
dimensional array with a maximum
size of 2n + 1.

The above example of a binary tree and it is


represented as follows...
Linked List Representation of Binary Tree
⚫We use a double linked list to represent a binary tree.
⚫In a double linked list, every node consists of three fields.
⚫First field for storing left child address, second for storing
actual data and third for storing right child address.
⚫In this linked list representation, a node has the following
structure...
Binary Tree Traversals
⚫Displaying (or) visiting order of nodes in a binary tree
is called as Binary Tree Traversal.
⚫There are three types of binary tree traversals.
⚫1.In - Order Traversal
⚫2.Pre - Order Traversal
⚫3.Post - Order Traversal
In - Order
Algorithm Traversal ( leftChild - root - rightChild )
Inorder(tree)
⚫  1. Traverse the left subtree, i.e., call Inorder(left-subtree)
⚫ 2. Visit the root.
⚫ 3. Traverse the right subtree, i.e., call Inorder(right-subtree)

In-Order Traversal for binary


tree is
I - D- J - B - F-A- G - K - C - H
Pre - Order Traversal ( root - leftChild - rightChild )
⚫Algorithm Preorder(tree)
⚫1. Visit the root.
⚫2. Traverse the left subtree, i.e., call Preorder(left-subtree)
⚫ 3. Traverse the right subtree, i.e., call Preorder(right-subtree)

Pre-Order Traversal for binary


tree is
A- B- D - I - J - F- C - G - K - H
Post - Order Traversal ( leftChild - rightChild - root )
⚫Algorithm Postorder(tree)
⚫ 1. Traverse the left subtree, i.e., call Postorder(left-subtree)
⚫2. Traverse the right subtree, i.e., call Postorder(right-subtree)
⚫3. Visit the root.

Post-Order Traversal for binary tree is


I- J- D- F- B - K- G - H -C-A
Representation of Algebraic expressions
⚫Strictly binary tree data structure is used to represent
mathematical expressions.
Threaded Binary Trees
⚫When a binary tree is represented using linked list
representation, the reference part of the node which
doesn't have a child is filled with a NULL pointer.
⚫In any binary tree linked list representation, there is a
number of NULL pointers than actual pointers
⚫A new binary tree called "Threaded Binary Tree",
which makes use of NULL pointers to improve its
traversal process.
⚫In a threaded binary tree, NULL pointers are replaced
by references of other nodes in the tree.
⚫These extra references are called as threads.
Threaded Binary Trees
⚫Threaded Binary Tree is also a binary tree in which all
left child pointers that are NULL points to its in-order
predecessor, and all right child pointers that are NULL
points to its in-order successor.
⚫If there is no in-order predecessor or in-order
successor, then it points to the root node
In-order traversal of
binary tree...H - D - I -
B - E -A- F- J - C - G
In-order traversal of binary tree...H - D - I -
B- E-A-F- J- C- G

Threads are indicated


with dotted links.

You might also like