Upload
yakov
View
40
Download
0
Embed Size (px)
DESCRIPTION
CSC 213 – Large Scale Programming. Lecture 27: Graph ADT. Today’s Goals. Discuss what is NOT meant by term “Graph” Why no bar charts, scatter plots , & pie charts mentioned How term is used for mathematical graph Review terminology of mathematical graphs - PowerPoint PPT Presentation
Citation preview
LECTURE 27:GRAPH ADT
CSC 213 – Large Scale Programming
Today’s Goals
Discuss what is NOT meant by term “Graph” Why no bar charts, scatter plots, & pie charts
mentioned How term is used for mathematical graph
Review terminology of mathematical graphs Why do we care about edges & vertices Directed vs. undirected more than types of
plays Which 1 of these made up: incident, adjacent,
feeder Cycles & paths not related to Queen songs
Examine GRAPH ADT’s method & what they do
Overview of Remainder of Term
What We Are Not Discussing
Graphs
Mathematically, graph is pair (V, E) where V is collection of nodes, called vertices Two nodes can be connected by an edge in
E Position implemented by Vertex & Edge
classes ORD PVD
MIADFW
SFO
LAX
LGAHNL
849
802
13871743
1843
10991120
1233337
2555
142
Edge Types
Edge connects two vertices in the graph Image we have edge connecting u & v (u,v) is name given to this edge
Edge Types
Edge connects two vertices in the graph Image we have edge connecting u & v (u,v) is name given to this edge
Edges can be directed One-way street is directed edge u is origin or source v is destination
Life Death
Edge Types
Edge connects two vertices in the graph Image we have edge connecting u & v (u,v) is name given to this edge
Edges can be directed One-way street is directed edge u is origin or source v is destination
Undirected edge is alternative Vertices listed in any order Subway lines normally undirected
Life Death
Best Canisius
Graph Types
Graph is directed if all edges directed All edges in graph must be directed Examples include trees & Java object
hierarchy Any edge allowed in undirected graphs
Can have only undirected or mix of both edges
Roadways & CSC major are examples of this
John
DavidPaul
brown.edu
cox.net
cs.brown.edu
att.netqwest.net
math.brown.edu
cslab1bcslab1a
Applications
Electronic circuits Transportation networks Databases Packing suitcases Finding terrorists Scheduling college’s exams Assigning classes to rooms Garbage collection Coloring countries on a map Playing minesweeper
Other Applications
Terminology
Edge incident on its endpoints U & V endpoints of a
Vertices adjacent when joined by edge U adjacent to V V adjacent to U Directedness unimportant
determining adjacency
XU
V
W
Z
Y
a
c
b
e
d
f
g
h
i
j
Terminology
Degree of vertex is number incident edges X has degree of 5 Does not matter if
edges directed or not What the edges’ other
endvertices unimportant (Self-edges only count once)
XU
V
W
Z
Y
a
c
b
e
d
f
g
h
i
j
Path Terminology
Path is set of vertices in Graph where All of the consecutive vertices adjacent May or may not have edge from last to first
vertices
(U, W, X, Y, W, V) is pathXU
V
W
Z
Y
a
c
b
e
f
g
h
Path Terminology
Simple path is a path which: Is named by alternating vertices & edges 0 or 1 appearance for each vertex & edge
(V, b, X, h, Z) is simple path XU
V
W
Z
Y
a
c
b
e
d
f
g
h
Cycle Terminology
Cycle is path with several additional properties Each cycle must begin & end at same
vertex No edge required from this vertex to itself
Simple cycle is special cycle But is also simple path
(V, X, Y, W, U, V) is simple cycle
XU
V
W
Z
Y
a
c
b
e
d
f
g
h
Graph ADT
Accessor methods vertices(): iterable for
vertices edges(): iterable for
edges endVertices(e): array
with end points of edge e
opposite(v,e): e’s end point that is not v
areAdjacent(v,w): check if v and w are adjacent
replace(v,x): make x new element at vertex v
replace(e,x): make x new element at edge e
Update methods insertVertex(x):
create vertex storing element x
insertEdge(v,w,x): add edge (v,w) with element x
removeVertex(v): remove v (& incident edges)
removeEdge(e): remove e
Retrieval methods incidentEdges(v): get
edges incident to v
For Next Lecture
New weekly assignment available now Usual time for when it is due: 5PM on
Tuesday Consider design & develop tests for
program #2 2nd deadline is Friday, so get cracking Spend time working on this: design saves
coding Reading on implementing Graph for
Friday What are simplest implementations of
Graph? When would each be good to use is
program?