Survey							
                            
		                
		                * Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Graphs Chapter 30 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall Chapter Contents • Some Examples and Terminology  Road Maps  Airline Routes  Mazes  Course Prerequisites  Trees • Traversals  Breadth-First Traversal  Dept-First Traversal Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Chapter Contents • Topological Order • Paths  Finding a Path  Shortest Path in an Unweighted Graph  Shortest Path in a Weighted Graph • Java Interfaces for the ADT Graph Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Some Examples and Terminology • Vertices or nodes are connected by edges • A graph is a collection of distinct vertices and distinct edges  Edges can be directed or undirected  When it has directed edges it is called a digraph • A subgraph is a portion of a graph that itself is a graph Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Road Maps Nodes Edges Fig. 30-1 A portion of a road map. Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Road Maps Fig. 30-2 A directed graph representing a portion of a city's street map. Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Paths • A sequence of edges that connect two vertices in a graph • In a directed graph the direction of the edges must be considered  Called a directed path • A cycle is a path that begins and ends at same vertex  Simple path does not pass through any vertex more than once • A graph with no cycles is acyclic Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Weights • A weighted graph has values on its edges  Weights or costs • A path in a weighted graph also has weight or cost  The sum of the edge weights • Examples of weights  Miles between nodes on a map  Driving time between nodes  Taxi cost between node locations Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Weights Fig. 30-3 A weighted graph. Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Connected Graphs • A connected graph  Has a path between every pair of distinct vertices • A complete graph  Has an edge between every pair of distinct vertices • A disconnected graph  Not connected Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Connected Graphs Fig. 30-4 Undirected graphs Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Adjacent Vertices • Two vertices are adjacent in an undirected graph if they are joined by an edge • Sometimes adjacent vertices are called neighbors Fig. 30-5 Vertex A is adjacent to B, but B is not adjacent to A. Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Airline Routes • Note the graph with two subgraphs  Each subgraph connected  Entire graph disconnected Fig. 30-6 Airline routes Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Mazes Fig. 30-7 (a) A maze; (b) its representation as a graph Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Course Prerequisites Fig. 30-8 The prerequisite structure for a selection of courses as a directed graph without cycles. Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Trees • All trees are graphs  But not all graphs are trees • A tree is a connected graph without cycles • Traversals  Preorder, inorder, postorder traversals are examples of depth-first traversal  Level-order traversal of a tree is an example of breadth-first traversal • Visit a node  For a tree: process the node's data  For a graph: mark the node as visited Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Trees Fig. 30-9 The visitation order of two traversals; (a) depth first Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Trees Fig. 30-9 The visitation order of two traversals; (b) breadth first. Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Breadth-First Traversal • A breadth-first traversal  visits a vertex and  then each of the vertex's neighbors  before advancing • View algorithm for breadth-first traversal of nonempty graph beginning at a given vertex Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Breadth-First Traversal Fig. 30-10 (ctd.) A trace of a breadth-first traversal for a directed graph, beginning at vertex A. Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Depth-First Traversal • Visits a vertex, then  A neighbor of the vertex,  A neighbor of the neighbor,  Etc. • Advance as possible from the original vertex • Then back up by one vertex  Considers the next neighbor • View algorithm for depth-first traversal Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Depth-First Traversal Fig. 30-11 A trace of a depthfirst traversal beginning at vertex A of the directed graph Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Topological Order • Given a directed graph without cycles • In a topological order  Vertex a precedes vertex b whenever  A directed edge exists from a to b Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Topological Order Fig. 30-8 Fig. 30-12 Three topological orders for the graph of Fig. 30-8. Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Topological Order Fig. 30-13 An impossible prerequisite structure for three courses as a directed graph with a cycle. Click to view algorithm for a topological sort Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Topological Order Fig. 30-14 Finding a topological order for the graph in Fig. 30-8. Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Shortest Path in an Unweighted Graph Fig. 30-15 (a) an unweighted graph and (b) the possible paths from vertex A to vertex H. Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Shortest Path in an Unweighted Graph Click to view algorithm for finding shortest path Fig. 30-16 (a) The graph in 30-15a after the shortestpath algorithm has traversed from vertex A to vertex H; (b) the data in the vertex Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Shortest Path in an Unweighted Graph Fig. 30-17 Finding the shortest path from vertex A to vertex H in the unweighted graph Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Shortest Path in an Weighted Graph Fig. 30-18 (a) A weighted graph and (b) the possible paths from vertex A to vertex H. Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Shortest Path in an Weighted Graph • Shortest path between two given vertices  Smallest edge-weight sum • Algorithm based on breadth-first traversal • Several paths in a weighted graph might have same minimum edge-weight sum  Algorithm given by text finds only one of these paths Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Shortest Path in an Weighted Graph Fig. 30-19 Finding the cheapest path from vertex A to vertex H in the weighted graph Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Shortest Path in an Weighted Graph Click to view algorithm for finding cheapest path in a weighted graph Fig. 30-20 The graph in Fig. 30-18a after finding the cheapest path from vertex A to vertex H. Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Java Interfaces for the ADT Graph • Methods in the BasicGraphInterface  addVertex  addEdge  hasEdge  isEmpty  getNumberOfVertices  getNumberOfEdges  clear • View interface for basic graph operations Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Java Interfaces for the ADT Graph Fig. 30-21 A portion of the flight map in Fig. 30-6. Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X Java Interfaces for the ADT Graph • Operations of the ADT  Graph enable creation of a graph and  Answer questions based on relationships among vertices • View interface of operations on an existing graph Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X