0% found this document useful (0 votes)
20 views23 pages

Lecture 10

The document discusses binary tree data structures. It defines a binary tree as a set of nodes where each node has a maximum of two children. The root node has no parent, and each subsequent level of nodes is one level deeper than its parent. Binary trees allow for efficient representation of hierarchical relationships. Complete binary trees have all levels filled out fully except the lowest, which has all its nodes filled to the left.

Uploaded by

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

Lecture 10

The document discusses binary tree data structures. It defines a binary tree as a set of nodes where each node has a maximum of two children. The root node has no parent, and each subsequent level of nodes is one level deeper than its parent. Binary trees allow for efficient representation of hierarchical relationships. Complete binary trees have all levels filled out fully except the lowest, which has all its nodes filled to the left.

Uploaded by

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

Lecture No.

10

Data Structures
Tree Data Structures
• There are a number of applications where
linear data structures are not
appropriate.
• Consider a genealogy tree of a family.
Mohammad Aslam Khan

Sohail Aslam Javed Aslam Yasmeen Aslam

Haaris Saad Qasim Asim Fahd Ahmad Sara Ome


r
Tree Data Structure
• A linear linked list will not be able
to capture the tree-like
relationship with ease.
• Shortly, we will see that for
applications that require
searching, linear data structures
are not suitable.
• We will focus our attention on
binary trees.
Binary Tree
• A binary tree is a finite set of elements
that is either empty or is partitioned
into three disjoint subsets.
• The first subset contains a single
element called the root of the tree.
• The other two subsets are themselves
binary trees called the left and right
subtrees.
• Each element of a binary tree is called
a node of the tree.
Binary Tree
• Binary tree with 9 nodes.
A

B C

D E F

G H I
Binary Tree
root

B C

D E F

G H I

Left subtree Right subtree


Binary Tree
• Recursive definition
A
root

B C

D E F

Left subtree G H I

Right subtree
Binary Tree
• Recursive definition
A

B C
root

D E F

G H I

Left subtree
Binary Tree
• Recursive definition
A

B C

D E F

root
G H I
Binary Tree
• Recursive definition
A
root

B C

D E F

G H I

Right subtree
Binary Tree
• Recursive definition
A

B C
root

D E F

G H I

Left subtree Right subtree


Not a Tree
• Structures that are not trees.
A

B C

D E F

G H I
Not a Tree
• Structures that are not trees.
A

B C

D E F

G H I
Not a Tree
• Structures that are not trees.
A

B C

D E F

G H I
Binary Tree: Terminology

parent
A

Left descendant B C Right descendant

D E F

G H I

Leaf nodes Leaf nodes


Binary Tree
• If every non-leaf node in a binary tree has non-empty left and right
subtrees, the tree is termed a strictly binary tree.

B C

D E J F

G K H I
Level of a Binary Tree
Node
• The level of a node in a binary tree
is defined as follows:
 Root has level 0,
 Level of any other node is one more
than the level its parent (father).
• The depth of a binary tree is the
maximum level of any leaf in the
tree.
Level of a Binary Tree
Node

A 0 Level 0

B 1 C 1 Level 1

D 2 E 2 F 2 Level 2

G 3 H 3 I 3 Level 3
Complete Binary Tree
• A complete binary tree of depth d is the strictly
binary all of whose leaves are at level d.
0
A

B 1 C 1

D 2 E 2 F 2 G 2

H 3 I J 3 K L 3 M3 N 3 O 3
Complete Binary Tree

A Level 0: 20 nodes

B C Level 1: 21 nodes

D E F G Level 2: 22 nodes

H I J K L M N O Level 3: 23 nodes
Complete Binary Tree
• At level k, there are 2k nodes.
• Total number of nodes in the tree of
depth d:
d
2 + 2 + 2 + ………. + 2 =  2j = 2d+1 –
0 1 2 d

1 j=
0

• In a complete binary tree, there are


2d leaf nodes and (2d - 1) non-leaf
(inner) nodes.
Complete Binary Tree
• If the tree is built out of ‘n’ nodes then

n = 2d+1 – 1
or log2(n+1) = d+1
or d = log2(n+1) – 1
• I.e., the depth of the complete binary tree
built using ‘n’ nodes will be log2(n+1) – 1.
• For example, for n=1,000,000,
log2(1000001) is less than 20; the tree
would be 20 levels deep.
• The significance of this shallowness will
become evident later.
Operations on Binary Tree
• There are a number of operations that
can be defined for a binary tree.
• If p is pointing to a node in an
existing tree then
 left(p) returns pointer to the left subtree
 right(p) returns pointer to right subtree
 parent(p) returns the father of p
 brother(p) returns brother of p.
 info(p) returns content of the node.

You might also like