graphs
play

Graphs 3 4 8 1 ORD SFO 802 1743 337 1 2 3 3 LAX DFW - PowerPoint PPT Presentation

Graphs 3 4 8 1 ORD SFO 802 1743 337 1 2 3 3 LAX DFW Outline / Reading Graphs (6.1) Definition Applications Terminology Properties ADT Data structures for graphs (6.2) Edge list structure


  1. Graphs 3 4 8 1 ORD SFO 802 1743 337 1 2 3 3 LAX DFW

  2. Outline / Reading Graphs (6.1) • Definition • Applications • Terminology • Properties • ADT Data structures for graphs (6.2) • Edge list structure • Adjacency list structure • Adjacency matrix structure Graphs 2

  3. 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 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 849 PVD 3 4 8 1 ORD 142 SFO 802 1743 LGA 337 1387 1 2555 0 HNL 9 1 2 9 3 3 LAX 1120 DFW MIA Graphs 3

  4. Edge Types Directed edge Directed graph • ordered pair of vertices ( u , v ) • all the edges are directed • first vertex u is the origin • e.g., flight network • second vertex v is the destination • e.g., a flight flight ORD PVD AA 1206 Undirected edge Undirected graph • unordered pair of vertices ( u , v ) • all the edges are undirected • e.g., a flight route • e.g., route network 849 ORD PVD miles Graphs 4

  5. Applications • Electronic circuits cslab1a cslab1b – Printed circuit board math.brown.edu – Integrated circuit • Transportation networks cs.brown.edu – Highway network – Flight network brown.edu qwest.net • Computer networks att.net – Local area network – Internet – Web cox.net John Paul • Databases David – Entity-relationship diagram Graphs 5

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

  7. Terminology (cont.) Path • sequence of alternating vertices and edges • begins with a vertex • ends with a vertex V • each edge is preceded and followed by its b a P 1 endpoints d U X Z P 2 h Simple path c e • path such that all its vertices and edges are distinct W g f Examples Y • 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 Graphs 7

  8. Terminology (cont.) Cycle • circular sequence of alternating vertices and edges • each edge is preceded and followed by its V endpoints a b d U X Z Simple cycle C 2 h • cycle such that all its vertices and edges are e C 1 c distinct W g Examples f Y 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 Graphs 8

  9. Properties Property 1. In an undirected graph Notation S v deg( v ) = 2 m n number of vertices Proof: each edge is counted twice m number of edges deg( v ) degree of vertex v 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? Ex: n = = 4; m = = 6; deg( v ) = 3 Graphs 9

  10. Main Methods of the Graph ADT Vertices and edges Update methods • are positions • insertVertex(o) • store elements • insertEdge(v, w, o) • insertDirectedEdge(v, w, o) Accessor methods • removeVertex(v) • aVertex() • removeEdge(e) • incidentEdges(v) • endVertices(e) Generic methods • isDirected(e) • numVertices() • origin(e) • numEdges() • destination(e) • vertices() • opposite(v, e) • edges() • areAdjacent(v, w) Graphs 10

  11. Data Structures Structures to represent a graph: 1. Edge List 2. Adjacency List 3. Adjacency Matrix Graphs 11

  12. Edge List Structure A container of edge objects, where each edge object references the origin and destination vertex object Graphs 12

  13. Adjacency List Structure An edge list structure, where additionally each vertex object v references an incidence container which stores references to the edges incident on v . Graphs 13

  14. Adjacency Matrix Structure A 2D array of all vertex pairs, where cell A[ u , v ] stores edge e incident on vertices u,v if such an edge exists. Graphs 14

  15. Asymptotic Performance n vertices, m edges Edge Adjacency Adjacency no parallel edges List List Matrix no self-loops Bounds are “ big-Oh ” n + m n + m Space n 2 incidentEdges( v ) m deg( v ) n areAdjacent ( v, w ) m min(deg( v ), deg( w )) 1 insertVertex( o ) 1 1 n 2 insertEdge( v, w, o ) 1 1 1 removeVertex( v ) m deg( v ) n 2 removeEdge( e ) 1 1 1 Graphs 15

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend