44
COSC 2007 Data Structures II Chapter 14 Graphs I

COSC 2007 Data Structures II Chapter 14 Graphs I

Embed Size (px)

Citation preview

Page 1: COSC 2007 Data Structures II Chapter 14 Graphs I

COSC 2007Data Structures II

Chapter 14Graphs I

Page 2: COSC 2007 Data Structures II Chapter 14 Graphs I

2

Topics

Introduction & Terminology ADT Graph

Page 3: COSC 2007 Data Structures II Chapter 14 Graphs I

3

Introduction Graphs

Important mathematical concept that have significant application in computer science

Can be viewed as a data structure or ADT Provide a way to represent relationships between data

Questions Answered by Using Graphs: Airline flight scheduling:

What is the shortest distance between two cities?

Page 4: COSC 2007 Data Structures II Chapter 14 Graphs I

4

• A graph G is a pair (V, E) where

V is a set of vertices (nodes) V = {A, B, C, D, E, F}

E is a set of edges (connect vertex) E = {(A,B), (A,D), (B,C),(C,D), (C,E), (D,E)}

A

BC

F

D E

Terminology and Notations

Page 5: COSC 2007 Data Structures II Chapter 14 Graphs I

5

• If edge pairs are ordered, the graph is directed, otherwise undirected.

• We draw edges in undirected graphs with lines with no arrow heads.

This is an undirected graph.

(B, C) and (C, B) mean the same edge

A

BC

F

D E

Terminology and Notations

Page 6: COSC 2007 Data Structures II Chapter 14 Graphs I

6

• If edge pairs are ordered, the graph is directed, otherwise undirected.

• We draw edges in directed graphs with lines with arrow heads.

A

BC

F

D E

This is adirected graph.

This edge is (B, C).

(C, B) would mean a directed edge from C to B

Terminology and Notations

Page 7: COSC 2007 Data Structures II Chapter 14 Graphs I

7

• Directed Graph (Digraph):If an edge between two nodes has a direction (directed edges)

Out-degree (OD) of a Node in a Digraph:The number of edges exiting from the node

In-degree (ID) of a Node in a Digraph:The number of edges entering the node

A

BC

F

D E

This is adirected graph.

Terminology and Notations

Page 8: COSC 2007 Data Structures II Chapter 14 Graphs I

8

• Vertex w is adjacent to v if and only if (v, w) E.

• In a directed graph the order matters:

B is adjacent to A in this graph, but A is not adjacent to B.

A

BC

F

D E

Terminology and Notations

Page 9: COSC 2007 Data Structures II Chapter 14 Graphs I

9

• Vertex w is adjacent to v if and only if (v, w) E.

• In an undirected graph the order does not matter:

we say B is adjacent to A and that A is adjacent to B.

A

BC

F

D E

Terminology and Notations

Page 10: COSC 2007 Data Structures II Chapter 14 Graphs I

10

• In some cases each edge has a weight (or cost) associated with it.

• The costs might be determined by a cost function

E.g., c(A, B) = 3,c(D,E) = – 2.3, etc.

4

A

BC

F

D E

3

7.5

– 2.3

1.24.5

Terminology and Notations

Page 11: COSC 2007 Data Structures II Chapter 14 Graphs I

11

• In some cases each edge has a weight (or cost) associated with it.

• When no edge exists between two vertices, we say the cost is infinite.

E.g., c(C,F) =

A

BC

F

D E

34

7.5

– 2.3

1.24.5

Terminology and Notations

Page 12: COSC 2007 Data Structures II Chapter 14 Graphs I

12

• Let G = (V, E) be a graph.

A subgraph of G is a graph H = (V*, E*) such that V* V and E* E.

A

BC

F

D E

E.g.,

V* = {A, C, D},

E* = {(C, D)}.

Terminology and Notations

Page 13: COSC 2007 Data Structures II Chapter 14 Graphs I

13

• Let G = (V, E) be a graph.

A subgraph of G is a graph H = (V*, E*) such that V* V and E* E.

AC

D

E.g.,

V* = {A, C, D},

E* = {(C, D)}.

Terminology and Notations

Page 14: COSC 2007 Data Structures II Chapter 14 Graphs I

14

• Let G = (V, E) be a graph.

A path in the graph is a sequence of vertices

w , w , . . . , w such that (w , w ) E for 1<= i <= N–1. 1 2 N i i+1

A

BC

F

D E

E.g., A, B, C, Eis a path inthis graph

Terminology and Notations

Page 15: COSC 2007 Data Structures II Chapter 14 Graphs I

15

• Let w , w , . . . , w be a path.

The length of the path is the number of edges, N–1, one less than the number of vertices in the path.

A

BC

F

D E

E.g., the length ofpath A, B, C, Eis 3.

1 2 N

Terminology and Notations

Page 16: COSC 2007 Data Structures II Chapter 14 Graphs I

16

• Let w , w , . . . , w be a path in a directed graph.

Since each edge (w , w ) in the path is ordered,

the arrows on the path are always directed along

the path.

A

BC

F

D E

1 2 N

i i+1

E.g., A, B, C, Eis a path in this directed graph, but . . .

Terminology and Notations

. . . but A, B, C, Dis not a path, since (C, D) is not an edge.

Page 17: COSC 2007 Data Structures II Chapter 14 Graphs I

17

A path is simple if all vertices in it are distinct, except that the first and last could be the same.

A

BC

F

D E

E.g., thepath A, B, C, Eis simple . . .

Terminology and Notations

. . . and so is thepath A, B, C, E, D, A.

Page 18: COSC 2007 Data Structures II Chapter 14 Graphs I

18

If G is an undirected graph, we say it is connected if there is a PATH from every vertex to every other vertex.

A

BC

F

D E

This undirected graph is not connected.

Terminology and Notations

Page 19: COSC 2007 Data Structures II Chapter 14 Graphs I

19

If G is an directed graph, we say it is strongly connected if there is a path from every vertex to every other vertex.

This directed graph is strongly connected.

A

BC

F

D E

Terminology and Notations

Page 20: COSC 2007 Data Structures II Chapter 14 Graphs I

20

If G is an directed graph, we say it is strongly connected if there is a path from every vertex to every other vertex.

This directed graph is not strongly connected; e.g., there’s no path

from D to A.

A

BC

F

D E

Terminology and Notations

Page 21: COSC 2007 Data Structures II Chapter 14 Graphs I

21

If G is directed and not strongly connected, but the underlying graph (without direction to the edges) is connected, we say that G is weakly connected.

This directed graph is not strongly connected, but it isweakly connected, since . . .

A

BC

F

D E

Terminology and Notations

Page 22: COSC 2007 Data Structures II Chapter 14 Graphs I

22

If G is directed and not strongly connected, but the underlying graph (without direction to the edges) is connected, we say that G is weakly connected.

. . . since theunderlying undirected

graph is connected.

A

BC

F

D E

Terminology and Notations

Page 23: COSC 2007 Data Structures II Chapter 14 Graphs I

23

Cycle: a path that begins and ends at the

same node but doesn't pass through other

nodes more than once

A

BC

F

D E

The pathA, B, C, E, D, A

is a cycle.

Terminology and Notations

Page 24: COSC 2007 Data Structures II Chapter 14 Graphs I

24

•A graph with no cycles is called acyclic.

A

BC

F

D E

This graph is acyclic.

Terminology and Notations

Page 25: COSC 2007 Data Structures II Chapter 14 Graphs I

25

•A graph with no cycles is called acyclic.

This directed graph is not acyclic, . . .

A

BC

F

D E

Terminology and Notations

Page 26: COSC 2007 Data Structures II Chapter 14 Graphs I

26

•A graph with no cycles is called acyclic.

. . . but this one is.A Directed Acyclic Graph is often called simply a DAG.

A

BC

F

D E

Terminology and Notations

Page 27: COSC 2007 Data Structures II Chapter 14 Graphs I

27

•A complete graph is one that has an edge between every pair of vertices.

A

BC

D E

Incomplete:

Terminology and Notations

Page 28: COSC 2007 Data Structures II Chapter 14 Graphs I

28

•A complete graph is one that has an edge between every pair of vertices. (if the graph contains the maximum possible number of edges) A complete graph is also connected, but the converse is not true

Complete:

A

BC

D E

Terminology and Notations

Page 29: COSC 2007 Data Structures II Chapter 14 Graphs I

29

•A complete graph is one that has an edge between every pair of vertices.

• Suppose G = (V, E) is complete. Can you express |E| as a function of |V|?Complete:

A

BC

D E

This graph has |V| = 5 vertices and |E| = 10 edges.

Terminology and Notations

Page 30: COSC 2007 Data Structures II Chapter 14 Graphs I

30

•A free tree is a connected, acyclic, undirected graph.

•“Free” refers to the fact that there is no vertex designated as the “root.”

A

BC

D E

F

Terminology and Notations

This is a free tree.

Page 31: COSC 2007 Data Structures II Chapter 14 Graphs I

31

•A free tree is a connected, acyclic, undirected graph.

•If some vertex is designated as the root, we have a rooted tree.

A

BC

D E

F

root

Terminology and Notations

Page 32: COSC 2007 Data Structures II Chapter 14 Graphs I

32

•If an undirected graph is acyclic but possibly disconnected, it is a forest.

A

BC

D E

F

GH

I

JL

K

This is a forest. It contains three free trees.

Terminology and Notations

Page 33: COSC 2007 Data Structures II Chapter 14 Graphs I

33

•If an undirected graph is acyclic but possibly disconnected, it is a forest.This graph contains a cycle. Therefore it is neither a free tree nor a forest.

A

BC

D E

F

GH

I

JL

K

Terminology and Notations

Page 34: COSC 2007 Data Structures II Chapter 14 Graphs I

34

Review In a graph, a vertex is also known as a(n)

______. node edge path cycle

Page 35: COSC 2007 Data Structures II Chapter 14 Graphs I

35

Review A graph consists of ______ sets.

two three four five

Page 36: COSC 2007 Data Structures II Chapter 14 Graphs I

36

Review A subset of a graph’s vertices and edges

is known as a ______. bar graph line graph Subgraph circuit

Page 37: COSC 2007 Data Structures II Chapter 14 Graphs I

37

Review Two vertices that are joined by an edge

are said to be ______ each other. related to bordering utilizing adjacent to

Page 38: COSC 2007 Data Structures II Chapter 14 Graphs I

38

Review All ______ begin and end at the same

vertex and do not pass through any other vertices more than once. paths simple paths cycles simple cycles

Page 39: COSC 2007 Data Structures II Chapter 14 Graphs I

39

Review Which of the following is true about a

simple cycle? it can pass through a vertex more than once it can not pass through a vertex more than

once it begins at one vertex and ends at another it passes through only one vertex

Page 40: COSC 2007 Data Structures II Chapter 14 Graphs I

40

Review A graph is ______ if each pair of distinct

vertices has a path between them. complete disconnected connected full

Page 41: COSC 2007 Data Structures II Chapter 14 Graphs I

41

Review A complete graph has a(n) ______

between each pair of distinct vertices. edge path Cycle circuit

Page 42: COSC 2007 Data Structures II Chapter 14 Graphs I

42

Review The ______ of a weighted graph have

numeric labels. vertices edges paths cycles

Page 43: COSC 2007 Data Structures II Chapter 14 Graphs I

43

Review The edges in a ______ indicate a

direction. graph multigraph digraph spanning tree

Page 44: COSC 2007 Data Structures II Chapter 14 Graphs I

44

Review If there is a directed edge from vertex x to

vertex y, which of the following can be concluded about x and y? y is a predecessor of x x is a successor of y x is adjacent to y y is adjacent to x