GRAPH
Types of Graph
Terminology
Storage Structure
1
Graph
A graph is a collection of nodes (or vertices, singular is
vertex) and edges (or arcs)
Each node contains an element
Each edge connects two nodes together (or
possibly the same node to itself) and may
contain an edge attribute A
B C
D E
F
G
2
Formal definition of graph
A graph G is defined as follows:
G=(V,E)
V(G): a finite, nonempty set of vertices
E(G): a set of edges (pairs of vertices)
3
Types of graph
Directed graph (digraph)
Undirected graph (graph)
4
Undirected graph
An undirected graph is one in
which the edges do not have a
direction
‘graph’ denotes undirected graph.
G1 = ( 4, 6)
Undirected graph:
V(G1) = { 0, 1, 2 , 3 }
( v1, v2 ) in E is un-ordered. E(G1) = { (0,1), (0,2), (0,3
(v1,v2) and (v2, v1) represent (1,2), (1,3), (2,3) }
the same edge.
5
Directed graph
Directed graph is one in which the
edges have a direction
Also called as ‘digraph’
Directed graph:
< v1, v2 > in E is ordered.
<V1,v2> and <v2, v1> represent
the two different edges. G3 = (3, 3)
V(G3) = { 0,1,2 }
E(G3) = { <0,1> , <1,0> , <1,2>
6
Complete graph
A complete graph is a graph that has the maximum
number of edges .
for undirected graph with n vertices, the
maximum number of edges is n(n-1)/2
for directed graph with n vertices, the
maximum number of edges is n(n-1)
7
Complete graph
No.of edges = n(n-1)/2 No.of edges = n(n-1)/2 No.of edges = n(n-1
= 4*3/2 = 7*6/2 = 3*2
= 12/2 = 42/2 =6
=6 = 21
8
Adjacent and Incident
If (v0, v1) is an edge in an undirected graph,
– v0 and v1 are adjacent
– The edge (v0, v1) is incident on vertices v0 and v1
If <v0, v1> is an edge in a directed graph
– v0 is adjacent to v1, and v1 is adjacent from v0
– The edge <v0, v1> is incident on vertices v0 and v1
9
Sub- graph
A sub-graph of G is a graph G’ such that
V(G’) is a subset of V(G)
E(G’) is a subset of E(G)
10
Path
A path is a list of edges such that each node is the
predecessor of the next node in the list
A path from vertex vp to vertex vq in a graph G, is a
sequence of vertices, vp, vi1, vi2, ..., vin, vq, such that
(vp, vi1), (vi1, vi2), ..., (vin, vq) are edges in an
undirected graph
The length of a path is the number of edges on it
A simple path is a path in which all vertices,
except possibly the first and the last, are distinct
11
Cycle
A cycle is a path whose first and last nodes are the
same
- A cyclic graph contains at least one cycle
- An acyclic graph does not contain any cycles
cyclic graph acyclic graph
12
Connected component
In an undirected graph G, two vertices, v0 and v1,
are connected if there is a path in G from v0 to v1
An undirected graph is connected if, for every pair
of distinct vertices vi, vj, there is a path from vi to vj
A connected component of an undirected graph is a
maximal connected sub-graph.
13
Strongly connected
A directed graph is strongly connected if there is a
directed path from vi to vj and also from vj to vi.
A strongly connected component is a maximal sub-
graph that is strongly connected
14
Tree
A tree is a graph that is
connected
acyclic.
15
Degree
The degree of a vertex is the number of edges incident
to that vertex
For directed graph,
the in-degree of a vertex v is the number of
edges that have v as the head
the out-degree of a vertex v is the number of
edges that have v as the tail
if di is the degree of a vertex i in a graph G with
n vertices and e edges, the number of edges is
n 1
e ( d i ) / 2
0
16
Degree - graph
17
Degree - digraph
18
Graph Representation
Adjacency Matrix
Adjacency Lists
19
Adjacency matrix
Let G=(V,E) be a graph with n vertices.
The adjacency matrix of G is a two-dimensional
n by n array, say adj_mat
If the edge (vi, vj) is in E(G), adj_mat[i][j]=1
If there is no edge in E(G), adj_mat[i][j]=0
The adjacency matrix for an undirected graph is
symmetric
the adjacency matrix for a digraph need not be
symmetric 20
Adjacency matrix - graph
0 1 2 3
0 0 1 1 1
0 1 1
1 1
2 1 1 0 1
3 1 1 1 0
0 1 2 3 4 5 6 7
0
1
2
3
4
5
6
7 21
Adjacency matrix - digraph
0 1 2
0 0 1 0
1 1 0 1
2 0 0 0
22
Merits of Adjacency Matrix
From the adjacency matrix, to determine the connection
of vertices is easy
n 1
The degree of a vertex is adj _ mat[i][ j ]
j 0
For a digraph,
the row sum is the out_degree
the column sum is the in_degree
n 1 n 1
ind (vi ) A[ j , i ] outd (vi ) A[i , j ]
j 0 j 0
23
Demerits of adjacency matrix
Storage complexity: O(|V|2)
Difficult to insert and delete nodes.
24
Adjacency list
To overcome the problem arise in the adjacency
matrix, linked list can be used
The adjacency list contains two lists
1. node list
2. edge list
25
Adjacency list – graph
26
Adjacency list - digraph
Adjacency list Inverse Adjacency
list
27
Merits of adjacency list
degree of a vertex in an undirected graph
number of nodes in adjacency list
out-degree of a vertex in a directed graph
number of nodes in its adjacency list
in-degree of a vertex in a directed graph
traverse the whole data structure
Simple way to find out in-degree of vertex in a directed
graph
Represent the graph in inverse adjacency list 28