0% found this document useful (0 votes)
10 views42 pages

Tress

Uploaded by

Mahnoor Babar
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)
10 views42 pages

Tress

Uploaded by

Mahnoor Babar
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/ 42

Data Structures & Algorithms

Trees
Trees
• So far we did linear data structures
• There are a number of applications where linear
data structures are not appropriate.
• Trees are non-linear
• Allow much more efficient implementations of
algorithms
• Also, tree structure is the natural form of many
types of data
• Therefore, are seen commonly in file systems,
GUIs, databases, websites etc.
Trees
• For the linear context, in our earlier data
structures, there was a before and after
relationship between elements
• The relationship between elements in
trees is hierarchical, with elements being
above and below each other
• The terminology comes from family tree,
so we will be using terminology such as
parent, child, ancestor, descendant etc.
Tree of a Family

Muhammad Saleem

Shahid Saleem Zahid Saleem Shahzad Saleem

Arham Noor Hadid Hashim Fahd Ahmad Sara Omer


University Hierarchy
• Hierarchical structure of a university
shown asa tree.
Tree
• A tree is an abstract data type that stores
elements hierarchically
• With the exception of the top element,
known as the root, each element in a tree
has a parent element and zero or more
children elements
External or leaf nodes?
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.
• A node in tree can have any number of
children.
• 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.
• 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 M 3 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:

20+ 21+ 22 + ………. + 2d = d


2 j
= 2d+1
–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 parent of p
▪ sibling(p) returns sibling of p.
▪ info(p) returns content of the node.
Implementation of Binary Tree
• Binary trees can be implemented in at
least two ways
– As arrays
– As linked structures
Binary Tree as Array
• 0 index based sequencing
– The root is always located in the first cell, cell 0,
and –1 indicates a null child
– The key concept is that, if a parent is stored in
location k, then its left and right child are located
in locations 2k+1 and 2k+2 respectively
• 1 index based sequencing
– The root is always located in the second cell, cell
1, and –1 indicates a null child
– The key concept is that, if a parent is stored in
location k, then its left and right child are located
in locations 2k and 2k+1 respectively
13

10 25

2 12 20 31

29
Binary Tree: As Array
0 index based sequencing
Index Info Left Right
0 13 1 2
13
1 10 3 4
2 25 5 6
3 2
10 25
4 12
5 20
6 31 13
7 2 12 20 31
8
9
10 29
11
12
13 29

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy