Presentation is loading. Please wait.

Presentation is loading. Please wait.

© 2004 Goodrich, Tamassia Graphs1 ORD DFW SFO LAX 802 1743 1843 1233 337.

Similar presentations


Presentation on theme: "© 2004 Goodrich, Tamassia Graphs1 ORD DFW SFO LAX 802 1743 1843 1233 337."— Presentation transcript:

1 © 2004 Goodrich, Tamassia Graphs1 ORD DFW SFO LAX 802 1743 1843 1233 337

2 © 2004 Goodrich, Tamassia Graphs2 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 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 ORD PVD MIA DFW SFO LAX LGA HNL 849 802 1387 1743 1843 1099 1120 1233 337 2555 142

3 © 2004 Goodrich, Tamassia Graphs3 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 Undirected edge unordered pair of vertices (u,v) e.g., a flight route Directed graph all the edges are directed e.g., route network Undirected graph all the edges are undirected e.g., flight network ORDPVD flight AA 1206 ORDPVD 849 miles

4 © 2004 Goodrich, Tamassia Graphs4 Applications Electronic circuits Printed circuit board Integrated circuit Transportation networks Highway network Flight network Computer networks Local area network Internet Web Databases Entity-relationship diagram

5 © 2004 Goodrich, Tamassia Graphs5 Terminology End vertices (or endpoints) of an edge U and V are the endpoints of a Edges incident on a vertex a, d, and b are incident on V Adjacent vertices U and V are adjacent Degree of a vertex X has degree 5 Parallel edges h and i are parallel edges Self-loop j is a self-loop XU V W Z Y a c b e d f g h i j

6 © 2004 Goodrich, Tamassia Graphs6 P1P1 Terminology (cont.) Path sequence of alternating vertices and edges begins with a vertex ends with a vertex each edge is preceded and followed by its endpoints Simple path path such that all its vertices and edges are distinct Examples P 1 =(V,b,X,h,Z) is a simple path P 2 =(U,c,W,e,X,g,Y,f,W,d,V) is a path that is not simple XU V W Z Y a c b e d f g hP2P2

7 © 2004 Goodrich, Tamassia Graphs7 Terminology (cont.) Cycle circular sequence of alternating vertices and edges each edge is preceded and followed by its endpoints Simple cycle cycle such that all its vertices and edges are distinct Examples C 1 =(V,b,X,g,Y,f,W,c,U,a,  ) is a simple cycle C 2 =(U,c,W,e,X,g,Y,f,W,d,V,a,  ) is a cycle that is not simple C1C1 XU V W Z Y a c b e d f g hC2C2

8 © 2004 Goodrich, Tamassia Graphs8 Properties Notation n number of vertices m number of edges deg(v) degree of vertex v Property 1  v deg(v)  2m Proof: each edge is counted twice 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) What is the bound for a directed graph? Example n  4 m  6 deg(v)  3

9 © 2004 Goodrich, Tamassia Graphs9 Main Methods of the Graph ADT Vertices and edges are positions store elements Accessor methods endVertices(e): an array of the two endvertices of e opposite(v, e): the vertex opposite of v on e areAdjacent(v, w): true iff v and w are adjacent replace(v, x): replace element at vertex v with x replace(e, x): replace element at edge e with x Update methods insertVertex(o): insert a vertex storing element o insertEdge(v, w, o): insert an edge (v,w) storing element o removeVertex(v): remove vertex v (and its incident edges) removeEdge(e): remove edge e Iterator methods incidentEdges(v): edges incident to v vertices(): all vertices in the graph edges(): all edges in the graph

10 © 2004 Goodrich, Tamassia Graphs10 Edge List Structure Vertex object element reference to position in vertex sequence Edge object element origin vertex object destination vertex object reference to position in edge sequence Vertex sequence sequence of vertex objects Edge sequence sequence of edge objects v u w ac b a z d uv w z bcd

11 © 2004 Goodrich, Tamassia Graphs11 Adjacency List Structure Edge list structure Incidence sequence for each vertex sequence of references to edge objects of incident edges Augmented edge objects references to associated positions in incidence sequences of end vertices u v w ab a uv w b

12 © 2004 Goodrich, Tamassia Graphs12 Adjacency Matrix Structure Edge list structure Augmented vertex objects Integer key (index) associated with vertex 2D adjacency array Reference to edge object for adjacent vertices Null for non nonadjacent vertices The “old fashioned” version just has 0 for no edge and 1 for edge u v w ab 012 0  1  2  a uv w 01 2 b

13 © 2004 Goodrich, Tamassia Graphs13 Asymptotic Performance n vertices, m edges no parallel edges no self-loops Bounds are “big-Oh” Edge List Adjacency List Adjacency Matrix Space n  m n2n2 incidentEdges( v ) mdeg(v)n areAdjacent ( v, w ) mmin(deg(v), deg(w))1 insertVertex( o ) 11n2n2 insertEdge( v, w, o ) 111 removeVertex( v ) mdeg(v)n2n2 removeEdge( e ) 111


Download ppt "© 2004 Goodrich, Tamassia Graphs1 ORD DFW SFO LAX 802 1743 1843 1233 337."

Similar presentations


Ads by Google