CS 225 Data Structures No Novem ember er 11 Gr Graph aph Impl - - PowerPoint PPT Presentation

cs 225
SMART_READER_LITE
LIVE PREVIEW

CS 225 Data Structures No Novem ember er 11 Gr Graph aph Impl - - PowerPoint PPT Presentation

CS 225 Data Structures No Novem ember er 11 Gr Graph aph Impl plementat ation G G Carl Evans Gr Grap aphs To study all of these structures: 1. A common vocabulary 2. Graph implementations 3. Graph traversals 4. Graph


slide-1
SLIDE 1

CS 225

Data Structures

No Novem ember er 11 – Gr Graph aph Impl plementat ation

G G Carl Evans

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 A 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);

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

Gr Grap aph Im Implem plemen entatio tion Ide Idea

v u w a c b z d

slide-5
SLIDE 5

Gr Grap aph I Imple lementatio tion: E : Edge L Lis ist

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-6
SLIDE 6

Gr Grap aph I Imple lementatio tion: E : Edge L Lis ist

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-7
SLIDE 7

Gr Grap aph I Imple lementatio tion: E : Edge L Lis ist

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-8
SLIDE 8

Gr Grap aph I Imple lementatio tion: E : Edge L Lis ist

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-9
SLIDE 9

Gr Grap aph I Imple lementatio tion: A : Adjace acency cy M Matr trix ix

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-10
SLIDE 10

Gr Grap aph I Imple lementatio tion: A : Adjace acency cy M Matr trix ix

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-11
SLIDE 11

Gr Grap aph I Imple lementatio tion: A : Adjace acency cy M Matr trix ix

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-12
SLIDE 12

Gr Grap aph I Imple lementatio tion: A : Adjace acency cy M Matr trix ix

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-13
SLIDE 13

Gr Grap aph I Imple lementatio tion: A : Adjace acency cy M Matr trix ix

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-14
SLIDE 14

Gr Grap aph I Imple lementatio tion: A : Adjace acency cy M Matr trix ix

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-15
SLIDE 15

Gr Grap aph I Imple lementatio tion: A : Adjace acency cy M Matr trix ix

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-16
SLIDE 16

Gr Grap aph I Imple lementatio tion: A : Adjace acency cy M Matr trix ix

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-17
SLIDE 17

Gr Grap aph I Imple lementatio tion: E : Edge L Lis ist

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-18
SLIDE 18

Ad Adjacency 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

Ad Adjacency 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-20
SLIDE 20

Ad Adjacency 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-21
SLIDE 21

Ad Adjacency 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-22
SLIDE 22

Ad Adjacency 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-23
SLIDE 23

Ad Adjacency 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-24
SLIDE 24

Ad Adjacency 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-25
SLIDE 25

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) )

slide-26
SLIDE 26

Tr Traversal:

Objective: Visit every vertex and every edge in the graph. Purpose: Search for interesting sub-structures in the graph. We’ve seen traversal before ….but it’s different:

  • Ordered
  • Obvious Start
slide-27
SLIDE 27

Tr Traversal: BFS

A C D E B F G H