Вы находитесь на странице: 1из 9

Chapter 11 GRAPHS

1. Mathematical Background 2. Computer Representation 3. Graph Traversal 4. Topological Sorting 5. A Greedy Algorithm: Shortest Paths 6. Graphs as Data Structures

Outline Transp. 1, Chapter 11, Graphs

405

1997 Prentice-Hall, Inc., Upper Saddle River, N.J. 07458

Data Structures and Program Design In C, 2nd. ed.

Graphs: Denitions
1. A graph G consists of a set V , whose members are called the vertices of G , together with a set E of pairs of distinct vertices from V . 2. The pairs in E are called the edges of G . 3. If e = (v, w) is an edge with vertices v and w , then v and w are said to lie on e , and e is said to be incident with v and w. 4. If the pairs are unordered, G is called an undirected graph. 5. If the pairs are ordered, G is called a directed graph. The term directed graph is often shortened to digraph, and the unqualied term graph usually means undirected graph. 6. Two vertices in an undirected graph are called adjacent if there is an edge from the rst to the second. 7. A path is a sequence of distinct vertices, each adjacent to the next. 8. A cycle is a path containing at least three vertices such that the last vertex on the path is adjacent to the rst. 9. A graph is called connected if there is a path from any vertex to any other vertex. 10. A free tree is dened as a connected undirected graph with no cycles. 11. In a directed graph a path or a cycle means always moving in the direction indicated by the arrows. Such a path (cycle) is called a directed path (cycle). 12. A directed graph is called strongly connected if there is a directed path from any vertex to any other vertex. If we suppress the direction of the edges and the resulting undirected graph is connected, we call the directed graph weakly connected. 13. The valence of a vertex is the number of edges on which it lies, hence also the number of vertices adjacent to it.
Graphs: Denitions Transp. 2, Sect. 11.1, Mathematical Background 406

1997 Prentice-Hall, Inc., Upper Saddle River, N.J. 07458

Data Structures and Program Design In C, 2nd. ed.

Honolulu H H C Fiji Noumea Samoa Tahiti C H C H Sydney Auckland Selected South Pacific air routes Benzene molecule C H C C H

B A

D F

Message transmission in a network

4 Connected (a)

4 Path (b)

4 Cycle (c)

4 Disconnected (d)

4 Tree (e)

Directed cycle (a)

Strongly connected (b)

Weakly connected (c)

Various kinds of graphs Transp. 3, Sect. 11.1, Mathematical Background

407

1997 Prentice-Hall, Inc., Upper Saddle River, N.J. 07458

Data Structures and Program Design In C, 2nd. ed.

DEFINITION A graph G consists of a set V , called the vertices of G, and, for all v V , a subset Av of V , called the set of vertices adjacent to v .
Directed graph 1 2 Adjacency sets vertex 1 2 3 4 4 3 Set {2, 3} {3, 4} {1, 2, 3} 1 2 3 4 Adjacency table 1 F F F T 2 T F F T 3 T T F T 4 F T F F

graph vertex 1 edge (1, 2) edge (1, 3)

vertex 2

edge (2, 3)

edge (2, 4)

Directed graph 1 2 vertex 3

vertex 4

edge (4, 1) (a) Linked lists

edge (4, 2)

edge (4, 3)

n=4 vertex 1 2 3 n=4 5 6 max = 7 valence 2 2 0 3 2 3 1 3 4 2 adjacency list 3

n=4 firstedge 1 2 3 n=4 5 6 max = 7 (c) Mixed 1 2 3 2 3 3 4

(b) Contiguous lists

Computer representation of graphs Transp. 4, Sect. 11.2, Computer Representation

408

1997 Prentice-Hall, Inc., Upper Saddle River, N.J. 07458

Data Structures and Program Design In C, 2nd. ed.

9 4 4 8 9
409

Start

6
1997 Prentice-Hall, Inc., Upper Saddle River, N.J. 07458
Data Structures and Program Design In C, 2nd. ed.

Graph traversal Transp. 5, Sect. 11.3, Graph Traversal

Start

Depth-first traversal 5 7

Breadth-first traversal

Topological Sorting
Let G be a directed graph with no cycles. A topological order for G is a sequential listing of all the vertices in G such that, for all vertices v, w G , if there is an edge from v to w , then v precedes w in the sequential listing.
1 2 3 4 5

10

Directed graph with no directed cycles

10

Depth-first ordering

10

Breadth-first ordering

Topological Sorting Transp. 6, Sect. 11.4, Topological Sorting

410

1997 Prentice-Hall, Inc., Upper Saddle River, N.J. 07458

Data Structures and Program Design In C, 2nd. ed.

A Greedy Algorithm: Shortest Paths


The problem of shortest paths:
Given a directed graph in which each edge has a nonnegative weight or cost, nd a path of least total weight from a given vertex, called the source, to every other vertex in the graph.
0 2 3 4 6 6 10 4 1 2 3 2 2 1 5

Method:
We keep a set S of vertices whose closest distances to the source, vertex 0, are known and add one vertex to S at each stage. We maintain a table D that gives, for each vertex v , the distance from 0 to v along a path all of whose vertices are in S , except possibly the last one. To determine what vertex to add to S at each step, we apply the greedy criterion of choosing the vertex v with the smallest distance recorded in the table D , such that v is not already in S .
A Greedy Algorithm: Shortest Paths Transp. 7, Sect. 11.5, A Greedy Algorithm: Shortest Paths 411

1997 Prentice-Hall, Inc., Upper Saddle River, N.J. 07458

Data Structures and Program Design In C, 2nd. ed.

Example of Shortest Path

0 2

Source 5 3 2

0 5

6 6 10

1 1

1 3

d=2

d=5 S = {0}

2 3 2 (a) 2

d=

3 (b)

d=3

0 2 3 4 6 1 4 5 2

0 5

1 3

d=2
10 4

d=5 S = {0, 4}
3 2

d=2
4

d=4
1

S = {0, 4, 2}
3 2

d=6
(c)

d=3

d=5

2 (d)

d=3

0 2 3 4 1 6 1 4 2

3 1

d=2

d=4

d=2

d=4

S = {0, 4, 2, 1}
3 2 (e) 2 3 2 (f) 2

S = {0, 4, 2, 1, 3}

d=5

d=3

d=5

d=3

Example of Shortest Path Transp. 8, Sect. 11.5, A Greedy Algorithm: Shortest Paths

412

1997 Prentice-Hall, Inc., Upper Saddle River, N.J. 07458

Data Structures and Program Design In C, 2nd. ed.

Pointers and Pitfalls

1. Graphs provide an excellent way to describe the essential features of many applications, thereby facilitating specication of the underlying problems and formulation of algorithms for their solution. Graphs sometimes appear as data structures but more often as mathematical abstractions useful for problem solving. 2. Graphs may be implemented in many ways by the use of different kinds of data structures. Postpone implementation decisions until the applications of graphs in the problem-solving and algorithm-development phases are well understood. 3. Many applications require graph traversal. Let the application determine the traversal method: depth rst, breadth rst, or some other order. Depth-rst traversal is naturally recursive (or can use a stack). Breadth-rst traversal normally uses a queue. 4. Greedy algorithms represent only a sample of the many paradigms useful in developing graph algorithms. For further methods and examples, consult the references.

Pointers and Pitfalls Transp. 9, Chapter 11, Graphs

413

1997 Prentice-Hall, Inc., Upper Saddle River, N.J. 07458

Data Structures and Program Design In C, 2nd. ed.

Вам также может понравиться