You are on page 1of 3

43 17
802

Graphs (§12.1)

SFO
337

1843

ORD

LAX

1233

Data structures for graphs (§12.2)
1 Graphs 2

DFW

Graphs

Graph
A graph is a pair (V, E), where
V is a set of nodes, called vertices E is a collection of pairs of vertices, called edges Vertices and edges are positions and store elements

Edge Types
Directed edge
ordered pair of vertices (u,v) first vertex u is the origin second vertex v is the destination e.g., a flight

ORD

flight AA 1206 849 miles

PVD

Example:
A vertex represents an airport and stores the three-letter airport code An edge represents a flight route between two airports and stores the mileage of the route

Undirected edge
unordered pair of vertices (u,v) e.g., a flight route

ORD

PVD

802

SFO
337

1843
43 17

ORD

849

14

2

PVD

Directed graph
all the edges are directed e.g., route network

HNL

2555

LAX

1233

DFW

7 138 1120

LGA
10 99

Undirected graph
all the edges are undirected e.g., flight network
3 Graphs 4

MIA

Graphs

Applications
cslab1a cslab1b math.brown.edu

Terminology
End vertices (or endpoints) of an edge
U and V are the endpoints of a
cs.brown.edu

Electronic circuits
Printed circuit board Integrated circuit

Transportation networks
Highway network Flight network

Edges incident on a vertex
a, d, and b are incident on V
brown.edu qwest.net

a U c

V d

b X e

h Z i g

j

Computer networks
Local area network Internet Web

att.net

Degree of a vertex
X has degree 5

W f

Parallel edges
cox.net John Paul David

h and i are parallel edges

Self-loop
j is a self-loop

Y

Databases
Entity-relationship diagram

Graphs

5

Graphs

6

b.Y.d. w) Example n=4 m=6 deg(v) = 3 Generic methods numVertices() numEdges() vertices() edges() What is the bound for a directed graph? Graphs 9 Graphs 10 Edge List Structure Vertex object element reference to position in vertex sequence v u a b c w d z Adjacency List Structure Edge list structure Incidence sequence for each vertex sequence of references to edge objects of incident edges z a u v b w Edge object element origin vertex object destination vertex object reference to position in edge sequence u v w Augmented edge objects references to associated positions in incidence sequences of end vertices u v w Vertex sequence sequence of vertex objects a b c d Edge sequence sequence of edge objects Graphs 11 a b Graphs 12 .Terminology (cont.W.↵) is a simple cycle C2=(U.a.X.f.g.h. w.W.Y.U.g.e.W. o) removeVertex(v) removeEdge(e) Property 2 In an undirected graph with no self-loops and no multiple edges m ≤ n (n − 1)/2 Proof: each vertex has degree at most (n − 1) Accessor methods aVertex() incidentEdges(v) endVertices(e) isDirected(e) origin(e) destination(e) opposite(v.↵) is a cycle that is not simple Examples P1=(V.X.W.g. o) insertDirectedEdge(v.b.e.a.c. e) areAdjacent(v.c.d.) Path sequence of alternating vertices and edges begins with a vertex ends with a vertex each edge is preceded and followed by its endpoints Terminology (cont.f.Z) is a simple path P2=(U. w.f.W.Y.V) is a path that is not simple Graphs 7 Graphs 8 Properties Property 1 Notation n m deg(v) number of vertices number of edges degree of vertex v Main Methods of the Graph ADT Vertices and edges are positions store elements Σv deg(v) = 2m Proof: each edge is counted twice Update methods insertVertex(o) insertEdge(v.X.X.V.c.) Cycle a U c V d P2 W f b P1 X h Z circular sequence of alternating vertices and edges each edge is preceded and followed by its endpoints a U c V d C2 W f b X e h C1 g Y Z Simple cycle cycle such that all its vertices and edges are distinct Simple path path such that all its vertices and edges are distinct e g Y Examples C1=(V.

m edges no parallel edges no self-loops Bounds are “big-Oh” Edge List n+m m m 1 1 m 1 Graphs Adjacency List n+m deg(v) min(deg(v). deg(w)) 1 1 deg(v) 1 Adjacency Matrix n2 n 1 n2 1 n2 1 14 2D-array adjacency array Reference to edge object for adjacent vertices Null for non nonadjacent vertices Space 0 u 1 0 0 1 a 2 ∅ ∅ ∅ ∅ b v 1 2 ∅ 2 w incidentEdges(v) areAdjacent (v. w.Adjacency Matrix Structure Edge list structure Augmented vertex objects Integer key (index) associated with vertex a u v b w Asymptotic Performance n vertices. o) removeVertex(v) removeEdge(e) The “old fashioned” version just has 0 for no edge and 1 for edge Graphs 13 . w) insertVertex(o) insertEdge(v.