CS 225 Data Structures Apr April 10 10 Gr Graph Imp mpleme - - PowerPoint PPT Presentation

cs 225
SMART_READER_LITE
LIVE PREVIEW

CS 225 Data Structures Apr April 10 10 Gr Graph Imp mpleme - - PowerPoint PPT Presentation

CS 225 Data Structures Apr April 10 10 Gr Graph Imp mpleme mentation Wade Fa Wa Fagen-Ul Ulmsch schnei eider er, , Cra Craig ZI ZIlles Gr Grap aphs To study all of these structures: 1. A common vocabulary 2. Graph


slide-1
SLIDE 1

CS 225

Data Structures

Apr April 10 10 – Gr Graph Imp mpleme mentation

Wa Wade Fa Fagen-Ul Ulmsch schnei eider er, , Cra Craig ZI ZIlles

slide-2
SLIDE 2

Gr Grap aphs

To study all of these structures:

  • 1. A common vocabulary
  • 2. Graph implementations
  • 3. Graph traversals
  • 4. Graph algorithms
slide-3
SLIDE 3

Gr Grap aph ADT

Functions:

  • insertVertex(K key);
  • insertEdge(Vertex v1, Vertex v2, K key);
  • removeVertex(Vertex v);
  • removeEdge(Vertex v1, Vertex v2);
  • incidentEdges(Vertex v);
  • areAdjacent(Vertex v1, Vertex v2);
  • origin(Edge e);
  • destination(Edge e);

Data:

  • Vertices
  • Edges
  • Some data structure

maintaining the structure between vertices and edges.

X V W Z Y b e d f g h

slide-4
SLIDE 4

Graph Implem emen entation: Edge e List

v u w a c b z d

Vertex Collection: Edge Collection:

u v w z u v a v w b u w c w z d

slide-5
SLIDE 5

Graph Implem emen entation: Edge e List

v u w a c b z d

insertVertex(K key): removeVertex(Vertex v):

u v w z u v a v w b u w c w z d

slide-6
SLIDE 6

Graph Implem emen entation: Edge e List

v u w a c b z d

incidentEdges(Vertex v): areAdjacent(Vertex v1, Vertex v2):

G.incidentEdges(v1).contains(v2)

u v w z u v a v w b u w c w z d

slide-7
SLIDE 7

Graph Implem emen entation: Edge e List

v u w a c b z d

insertEdge(Vertex v1, Vertex v2, K key):

u v w z u v a v w b u w c w z d

slide-8
SLIDE 8

Graph Implem emen entation: Adja jacen ency Matrix

v u w a c b z d u v w z

u v w z u v w z

u v a v w b u w c w z d

slide-9
SLIDE 9

Graph Implem emen entation: Adja jacen ency Matrix

v u w a c b z d u v w z

u v w z u

  • 1

1 v

  • 1

w

  • 1

z

  • u

v a v w b u w c w z d

slide-10
SLIDE 10

Graph Implem emen entation: Adja jacen ency Matrix

v u w a c b z d u v w z

u v w z u

  • v
  • w
  • z
  • u

v a v w b u w c w z d

slide-11
SLIDE 11

Graph Implem emen entation: Adja jacen ency Matrix

v u w a c b z d u v w z

u v w z u

  • v
  • w
  • z
  • u

v a v w b u w c w z d

insertVertex(K key):

slide-12
SLIDE 12

Graph Implem emen entation: Adja jacen ency Matrix

v u w a c b z d u v w z

u v w z u

  • v
  • w
  • z
  • u

v a v w b u w c w z d

removeVertex(Vertex v):

slide-13
SLIDE 13

Graph Implem emen entation: Adja jacen ency Matrix

v u w a c b z d u v w z

u v w z u

  • v
  • w
  • z
  • u

v a v w b u w c w z d

incidentEdges(Vertex v):

slide-14
SLIDE 14

Graph Implem emen entation: Adja jacen ency Matrix

v u w a c b z d u v w z

u v w z u

  • v
  • w
  • z
  • u

v a v w b u w c w z d

areAdjacent(Vertex v1, Vertex v2):

slide-15
SLIDE 15

Graph Implem emen entation: Adja jacen ency Matrix

v u w a c b z d u v w z

u v w z u

  • v
  • w
  • z
  • u

v a v w b u w c w z d

insertEdge(Vertex v1, Vertex v2, K key):

slide-16
SLIDE 16

Graph Implem emen entation: Edge e List

v u w a c b z d u v w z u v a v w b u w c w z d

slide-17
SLIDE 17

Adja jacen ency List

v u w a c b z d u v w z u v a v w b u w c w z d a c a b b c d d

d=2 d=2 d=3 d=1

slide-18
SLIDE 18

Adja jacen ency List

v u w a c b z d u v w z u v a v w b u w c w z d a c a b b c d d

d=2 d=2 d=3 d=1

slide-19
SLIDE 19

Adja jacen ency List

v u w a c b z d u v w z u v a v w b u w c w z d a c a b b c d d

d=2 d=2 d=3 d=1

insertVertex(K key):

slide-20
SLIDE 20

Adja jacen ency List

v u w a c b z d u v w z u v a v w b u w c w z d a c a b b c d d

d=2 d=2 d=3 d=1

removeVertex(Vertex v):

slide-21
SLIDE 21

Adja jacen ency List

v u w a c b z d u v w z u v a v w b u w c w z d a c a b b c d d

d=2 d=2 d=3 d=1

incidentEdges(Vertex v):

slide-22
SLIDE 22

Adja jacen ency List

v u w a c b z d u v w z u v a v w b u w c w z d a c a b b c d d

d=2 d=2 d=3 d=1

areAdjacent(Vertex v1, Vertex v2):

slide-23
SLIDE 23

Adja jacen ency List

v u w a c b z d u v w z u v a v w b u w c w z d a c a b b c d d

d=2 d=2 d=3 d=1

insertEdge(Vertex v1, Vertex v2, K key):

slide-24
SLIDE 24

Expressed as O(f)

Edge List Adjacency Matrix Adjacency List Space n+m n2 n+m insertVertex(v) 1 n 1 removeVertex(v) m n deg(v) insertEdge(v, w, k) 1 1 1 removeEdge(v, w) 1 1 1 incidentEdges(v) m n deg(v) areAdjacent(v, w) m 1 min( deg(v), deg(w) )