Example Directed Graph (Digraph)
V = {
a,b,c,d,e,f
}
E = {
(a,b), (a,c), (a,e), (b,c), (b,d), (b,e), (c,d),
(c,f), (d,e), (d,f), (e,f)
}
|V| = 6, |E| = 11
b
a
c
d
e
f
8
Example
Undirected
Graph
An
undirected graph
is just like a directed graph,
except the edges are
unordered pairs
(
sets
) {u,v}
Example:
b
a
c
e
d
f
V = {
a,b,c,d,e,f
}
E = {
{a,b}, {a,c}, {a,e}, {b,c}, {b,d}, {b,e}, {c,d}, {c,f},
{d,e}, {d,f
}, {e,f
}
}
9
Some Graph Terminology
!
Vertices u and v are called the
source
and
sink
of the directed
edge (u,v), respectively
!
Vertices u and v are called the
endpoints
of (u,v)
!
Two vertices are
adjacent
if they are connected by an edge
!
The
outdegree
of a vertex u in a directed graph is the number of
edges for which u is the source
!
The
indegree
of a vertex v in a directed graph is the number of
edges for which v is the sink
!
The
degree
of a vertex u in an undirected graph is the number of
edges of which u is an endpoint
b
a
c
e
d
f
b
a
c
d
e
f
10
More Graph Terminology
!
A
path
is a sequence v
0
,v
1
,v
2
,...,v
p
of vertices such
that (v
i
,v
i+1
)
!
E, 0
#
i
#
p – 1
!
The
length of a path
is its number of edges
"
In this example, the length is 5
!
A path is
simple
if it does not repeat any vertices
!
A
cycle
is a path v
0
,v
1
,v
2
,...,v
p
such that v
0
= v
p
!
A cycle is
simple
if it does not repeat any vertices
except the first and last
!
A graph is
acyclic
if it has no cycles
!
A directed acyclic graph is called a
dag
v
0
v
5
b
a
c
d
e
f
11
Is This a Dag?
!
Intuition:
"
If it’s a dag, there must be a vertex with indegree zero – why?
!
This idea leads to an algorithm
"
A digraph is a dag if and only if we can iteratively delete indegree-0
vertices until the graph disappears
b
a
c
d
e
f
12
Is This a Dag?
!
Intuition:
"
If it’s a dag, there must be a vertex with indegree zero – why?
!
This idea leads to an algorithm