Data Structure
Graph
Graphs
● A data structure that consists of a set of nodes (vertices) and a
set of edges that relate the nodes to each other
● The set of edges describes relationships among the vertices .
● 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)
2
Graph
Examples of Graphs
● V={0,1,2,3,4}
● E={(0,1), (1,2), (0,3), (3,0), (2,2), (4,3)}
Graph 3
0
1
4
2
3
When (x,y) is an edge,
we say that x is adjacent to y, and y
is adjacent from x.
0 is adjacent to 1.
1 is not adjacent to 0.
2 is adjacent from 1.
Directed vs. Undirected Graphs
● Undirected edge has no orientation (no arrow head)
● Directed edge has an orientation (has an arrow head)
● Undirected graph – all edges are undirected
● Directed graph – all edges are directed
u v
directed edge
u v
undirected edge
4
Graph
Weighted graph:
-a graph in which each edge carries a value
5
Graph
Directed graph Undirected graph
Directed Graph
● Directed edge (i, j) is incident to vertex j and
incident from vertex i
● Vertex i is adjacent to vertex j, and vertex j is
adjacent from vertex i
6
Graph
Graph terminology
● Adjacent nodes: two nodes are adjacent if they are
connected by an edge
● Path: a sequence of vertices that connect two
nodes in a graph
● A simple path is a path in which all vertices, except
possibly in the first and last, are different.
● Complete graph: a graph in which every vertex is
directly connected to every other vertex
5 is adjacent to 7
7 is adjacent from
5
7
Graph
Continued…
● A cycle is a simple path with the same start and
end vertex.
● The degree of vertex i is the no. of edges incident on
vertex i.
e.g., degree(2) = 2, degree(5) = 3, degree(3) = 1
Graph 8
Continued…
Undirected graphs are connected if there is a path
between any two vertices
Directed graphs are strongly connected if there is a path
from any one vertex to any other
Directed graphs are weakly connected if there is a path
between any two vertices, ignoring direction
A complete graph has an edge between every pair of
vertices
9
Graph
Continued…
● Loops: edges that connect a vertex to itself
● Paths: sequences of vertices p0, p1, … pm such that
each adjacent pair of vertices are connected by an
edge
● A simple path is a path in which all vertices, except
possibly in the first and last, are different.
● Multiple Edges: two nodes may be connected by >1
edge
● Simple Graphs: have no loops and no multiple edges
10
Graph
Graph Properties
Number of Edges – Undirected Graph
● The no. of possible pairs in an n vertex graph is
n*(n-1)
● Since edge (u,v) is the same as edge (v,u), the
number of edges in an undirected graph is n*(n-
1)/2.
Graph 11
Number of Edges - Directed Graph
● The no. of possible pairs in an n vertex graph is
n*(n-1)
● Since edge (u,v) is not the same as edge (v,u), the
number of edges in a directed graph is n*(n-1)
● Thus, the number of edges in a directed graph is ≤
n*(n-1)
Graph 12
Graph 13
• In-degree of vertex i is the number of edges incident to i (i.e.,
the number of incoming edges).
e.g., indegree(2) = 1, indegree(8) = 0
• Out-degree of vertex i is the number of edges incident from i
(i.e., the number of outgoing edges).
e.g., outdegree(2) = 1, outdegree(8) = 2
Graph Representation
● For graphs to be computationally useful, they have to
be conveniently represented in programs
● There are two computer representations of graphs:
● Adjacency matrix representation
● Adjacency lists representation
Graph 14
● Adjacency Matrix
● A square grid of boolean values
● If the graph contains N vertices, then the grid contains
N rows and N columns
● For two vertices numbered I and J, the element at row I
and column J is true if there is an edge from I to J,
otherwise false
Graph 15
Adjacency Matrix
Graph 16
1
2
3
0
4
0 1 2 3 4
0 false false true false false
1 false false false true false
2 false true false false true
3 false false false false false
4 false false false true false
Adjacency Matrix
1
4
3
5
2
17
Graph
L23 18
Adjacency Matrix
-Directed Multigraphs
A:
1
2
3
4
Adjacency Lists Representation
● A graph of n nodes is represented by a one-
dimensional array L of linked lists, where
● L[i] is the linked list containing all the nodes adjacent
from node i.
● The nodes in the list L[i] are in no particular order
Graph 19
Graph
Graphs: Adjacency List
● Adjacency list: for each vertex v ∈ V, store a list of
vertices adjacent to v
● Example:
● Adj[1] = {2,3}
● Adj[2] = {3}
● Adj[3] = {}
● Adj[4] = {3}
● Variation: can also keep
a list of edges coming into vertex
1
2 4
3
20
Graphs: Adjacency List
● How much storage is required?
● The degree of a vertex v = # incident edges
● Directed graphs have in-degree, out-degree
● For directed graphs, # of items in adjacency lists is
Σ out-degree(v) = |E|
For undirected graphs, # items in adjacency lists is
Σ degree(v) = 2 |E|
● So: Adjacency lists take O(V+E) storage
21
Graph
Implementing Graphs
Implementing Graphs
● (a) A weighted undirected graph and
(b) its adjacency list
Thank you!!!!
24
Graph

graphs in data structure for Btech students.pdf

  • 1.
  • 2.
    Graphs ● A datastructure that consists of a set of nodes (vertices) and a set of edges that relate the nodes to each other ● The set of edges describes relationships among the vertices . ● 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) 2 Graph
  • 3.
    Examples of Graphs ●V={0,1,2,3,4} ● E={(0,1), (1,2), (0,3), (3,0), (2,2), (4,3)} Graph 3 0 1 4 2 3 When (x,y) is an edge, we say that x is adjacent to y, and y is adjacent from x. 0 is adjacent to 1. 1 is not adjacent to 0. 2 is adjacent from 1.
  • 4.
    Directed vs. UndirectedGraphs ● Undirected edge has no orientation (no arrow head) ● Directed edge has an orientation (has an arrow head) ● Undirected graph – all edges are undirected ● Directed graph – all edges are directed u v directed edge u v undirected edge 4 Graph
  • 5.
    Weighted graph: -a graphin which each edge carries a value 5 Graph
  • 6.
    Directed graph Undirectedgraph Directed Graph ● Directed edge (i, j) is incident to vertex j and incident from vertex i ● Vertex i is adjacent to vertex j, and vertex j is adjacent from vertex i 6 Graph
  • 7.
    Graph terminology ● Adjacentnodes: two nodes are adjacent if they are connected by an edge ● Path: a sequence of vertices that connect two nodes in a graph ● A simple path is a path in which all vertices, except possibly in the first and last, are different. ● Complete graph: a graph in which every vertex is directly connected to every other vertex 5 is adjacent to 7 7 is adjacent from 5 7 Graph
  • 8.
    Continued… ● A cycleis a simple path with the same start and end vertex. ● The degree of vertex i is the no. of edges incident on vertex i. e.g., degree(2) = 2, degree(5) = 3, degree(3) = 1 Graph 8
  • 9.
    Continued… Undirected graphs areconnected if there is a path between any two vertices Directed graphs are strongly connected if there is a path from any one vertex to any other Directed graphs are weakly connected if there is a path between any two vertices, ignoring direction A complete graph has an edge between every pair of vertices 9 Graph
  • 10.
    Continued… ● Loops: edgesthat connect a vertex to itself ● Paths: sequences of vertices p0, p1, … pm such that each adjacent pair of vertices are connected by an edge ● A simple path is a path in which all vertices, except possibly in the first and last, are different. ● Multiple Edges: two nodes may be connected by >1 edge ● Simple Graphs: have no loops and no multiple edges 10 Graph
  • 11.
    Graph Properties Number ofEdges – Undirected Graph ● The no. of possible pairs in an n vertex graph is n*(n-1) ● Since edge (u,v) is the same as edge (v,u), the number of edges in an undirected graph is n*(n- 1)/2. Graph 11
  • 12.
    Number of Edges- Directed Graph ● The no. of possible pairs in an n vertex graph is n*(n-1) ● Since edge (u,v) is not the same as edge (v,u), the number of edges in a directed graph is n*(n-1) ● Thus, the number of edges in a directed graph is ≤ n*(n-1) Graph 12
  • 13.
    Graph 13 • In-degreeof vertex i is the number of edges incident to i (i.e., the number of incoming edges). e.g., indegree(2) = 1, indegree(8) = 0 • Out-degree of vertex i is the number of edges incident from i (i.e., the number of outgoing edges). e.g., outdegree(2) = 1, outdegree(8) = 2
  • 14.
    Graph Representation ● Forgraphs to be computationally useful, they have to be conveniently represented in programs ● There are two computer representations of graphs: ● Adjacency matrix representation ● Adjacency lists representation Graph 14
  • 15.
    ● Adjacency Matrix ●A square grid of boolean values ● If the graph contains N vertices, then the grid contains N rows and N columns ● For two vertices numbered I and J, the element at row I and column J is true if there is an edge from I to J, otherwise false Graph 15
  • 16.
    Adjacency Matrix Graph 16 1 2 3 0 4 01 2 3 4 0 false false true false false 1 false false false true false 2 false true false false true 3 false false false false false 4 false false false true false
  • 17.
  • 18.
    L23 18 Adjacency Matrix -DirectedMultigraphs A: 1 2 3 4
  • 19.
    Adjacency Lists Representation ●A graph of n nodes is represented by a one- dimensional array L of linked lists, where ● L[i] is the linked list containing all the nodes adjacent from node i. ● The nodes in the list L[i] are in no particular order Graph 19
  • 20.
    Graph Graphs: Adjacency List ●Adjacency list: for each vertex v ∈ V, store a list of vertices adjacent to v ● Example: ● Adj[1] = {2,3} ● Adj[2] = {3} ● Adj[3] = {} ● Adj[4] = {3} ● Variation: can also keep a list of edges coming into vertex 1 2 4 3 20
  • 21.
    Graphs: Adjacency List ●How much storage is required? ● The degree of a vertex v = # incident edges ● Directed graphs have in-degree, out-degree ● For directed graphs, # of items in adjacency lists is Σ out-degree(v) = |E| For undirected graphs, # items in adjacency lists is Σ degree(v) = 2 |E| ● So: Adjacency lists take O(V+E) storage 21 Graph
  • 22.
  • 23.
    Implementing Graphs ● (a)A weighted undirected graph and (b) its adjacency list
  • 24.