CS 225 Data Structures No Novem ember er 12 Gr Graphs aphs - - PowerPoint PPT Presentation

cs 225
SMART_READER_LITE
LIVE PREVIEW

CS 225 Data Structures No Novem ember er 12 Gr Graphs aphs - - PowerPoint PPT Presentation

CS 225 Data Structures No Novem ember er 12 Gr Graphs aphs Wa Wade Fagen-Ul Ulmschneider Gr Grap aphs To study all of these structures: 1. A common vocabulary 2. Graph implementations 3. Graph traversals 4. Graph algorithms


slide-1
SLIDE 1

CS 225

Data Structures

No Novem ember er 12 – Gr Graphs aphs

Wa Wade Fagen-Ul Ulmschneider

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 V Vocab abular lary

G = (V, E) |V| = n |E| = m

G1 G2 G3

Incident Edges: I(v) = { (x, v) in E } Degree(v): |I| Adjacent Vertices: A(v) = { x : (x, v) in E } Path(G2): Sequence of vertices connected by edges Cycle(G1): Path with a common begin and end vertex. Simple Graph(G): A graph with no self loops or multi-edges.

(2, 5)

slide-4
SLIDE 4

Gr Grap aph V Vocab abular lary

G = (V, E) |V| = n |E| = m

G1 G2 G3

Subgraph(G): G’ = (V’, E’): V’ ∈ V, E’ ∈ E, and (u, v) ∈ E à u ∈ V’, v ∈ V’ Complete subgraph(G) Connected subgraph(G) Connected component(G) Acyclic subgraph(G) Spanning tree(G) (2, 5)

slide-5
SLIDE 5

Running times are often reported by n, the number of vertices, but often depend on m, the number of edges. How many edges? Minimum edges: Not Connected: Connected*: Maximum edges: Simple: Not simple:

X U V W Z Y a c b e d f g h

slide-6
SLIDE 6

Con Connected Graphs

slide-7
SLIDE 7

Pr Proving the size of a minimally connected graph

Theorem: Every connected graph G=(V, E) has at least |V|-1 edges.

slide-8
SLIDE 8

Thm: Every connected graph G=(V, E) has at least |V|-1 edges. Proof: Consider an arbitrary, connected graph G=(V, E).

slide-9
SLIDE 9

Suppose |V| = 1: Definition: A connected graph of 1 vertex has 0 edges. Theorem: |V|-1 edges è 1-1 = 0.

slide-10
SLIDE 10

Inductive Hypothesis: For any j < |V|, any connected graph of j vertices has at least j-1 edges.

slide-11
SLIDE 11

Suppose |V| > 1:

  • 1. Choose any vertex:
  • 2. Partition:

X U V W Z Y a c e f h

slide-12
SLIDE 12

Suppose |V| > 1:

  • 3. Count the edges

X U V W Z Y a c e f h

slide-13
SLIDE 13

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);
  • 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-14
SLIDE 14

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); areAdjacent(Vertex v1, Vertex v2); incidentEdges(Vertex v);

u v w z a b c d

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

insertVertex(K key); removeVertex(Vertex v); areAdjacent(Vertex v1, Vertex v2); incidentEdges(Vertex v);

u v w z a b c d

u v w z u v w z