© 2006 Pearson Addison-Wesley. All rights reserved14 A-1 Chapter 14 excerpts Graphs (breadth-first-search)

Slides:



Advertisements
Similar presentations
Review Binary Search Trees Operations on Binary Search Tree
Advertisements

Graphs CSC 220 Data Structure. Introduction One of the Most versatile data structures like trees. Terminology –Nodes in trees are vertices in graphs.
CS 206 Introduction to Computer Science II 03 / 27 / 2009 Instructor: Michael Eckmann.
CSE 373: Data Structures and Algorithms Lecture 19: Graphs III 1.
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved Chapter 27 Graphs and Applications.
Graphs Chapter 12. Chapter Objectives  To become familiar with graph terminology and the different types of graphs  To study a Graph ADT and different.
Graphs Chapter 20 Data Structures and Problem Solving with C++: Walls and Mirrors, Carrano and Henry, © 2013.
Chapter 8, Part I Graph Algorithms.
Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved Chapter 27 Graph Applications.
Graphs Chapter 30 Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved X.
Introduction This chapter explores graphs and their applications in computer science This chapter explores graphs and their applications in computer science.
Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.
Graphs Graphs are the most general data structures we will study in this course. A graph is a more general version of connected nodes than the tree. Both.
CS202 - Fundamental Structures of Computer Science II
Graphs CS3240, L. grewe.
ITEC200 – Week 12 Graphs. 2 Chapter Objectives To become familiar with graph terminology and the different types of graphs To study.
Graphs Chapter 30 Slides by Steve Armstrong LeTourneau University Longview, TX  2007,  Prentice Hall.
© 2006 Pearson Addison-Wesley. All rights reserved14 A-1 Chapter 14 Graphs.
Nyhoff, ADTs, Data Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved Graphs.
Graphs Chapter 12. Chapter 12: Graphs2 Chapter Objectives To become familiar with graph terminology and the different types of graphs To study a Graph.
Spring 2010CS 2251 Graphs Chapter 10. Spring 2010CS 2252 Chapter Objectives To become familiar with graph terminology and the different types of graphs.
Graphs. Graphs Many interesting situations can be modeled by a graph. Many interesting situations can be modeled by a graph. Ex. Mass transportation system,
CS 206 Introduction to Computer Science II 03 / 25 / 2009 Instructor: Michael Eckmann.
© 2006 Pearson Addison-Wesley. All rights reserved14 B-1 Chapter 14 (continued) Graphs.
Fall 2007CS 2251 Graphs Chapter 12. Fall 2007CS 2252 Chapter Objectives To become familiar with graph terminology and the different types of graphs To.
Graphs & Graph Algorithms Nelson Padua-Perez Bill Pugh Department of Computer Science University of Maryland, College Park.
Graphs Chapter 20 Data Structures and Problem Solving with C++: Walls and Mirrors, Frank Carrano, © 2012.
Graph Implementations Chapter 29 Copyright ©2012 by Pearson Education, Inc. All rights reserved.
Graphs Chapter 28 Copyright ©2012 by Pearson Education, Inc. All rights reserved.
© 2006 Pearson Addison-Wesley. All rights reserved14 A-1 Chapter 14 Graphs.
Chapter 14 Graphs. © 2004 Pearson Addison-Wesley. All rights reserved Terminology G = {V, E} A graph G consists of two sets –A set V of vertices,
Nyhoff, ADTs, Data Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved Graphs.
1 Spanning Trees Longin Jan Latecki Temple University based on slides by David Matuszek, UPenn, Rose Hoberman, CMU, Bing Liu, U. of Illinois, Boting Yang,
Nyhoff, ADTs, Data Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved Graphs.
Common final examinations When: Wednesday, 12/11, 3:30-5:30 PM Where: Ritter Hall - Walk Auditorium 131 CIS 1166 final When: Wednesday, 12/11, 5:45-7:45.
Graphs. Definitions A graph is two sets. A graph is two sets. –A set of nodes or vertices V –A set of edges E Edges connect nodes. Edges connect nodes.
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 1 Chapter 30 Graphs and Applications.
CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals.
Graphs. Graphs Similar to the graphs you’ve known since the 5 th grade: line graphs, bar graphs, etc., but more general. Those mathematical graphs are.
Graphs A graphs is an abstract representation of a set of objects, called vertices or nodes, where some pairs of the objects are connected by links, called.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Ver Chapter 13: Graphs Data Abstraction & Problem Solving with C++
Trees, Binary Search Trees, Balanced Trees, Graphs Graph Fundamentals Telerik Algo Academy
1 Spanning Trees Longin Jan Latecki Temple University based on slides by David Matuszek, UPenn, Rose Hoberman, CMU, Bing Liu, U. of Illinois, Boting Yang,
1 Directed Graphs Chapter 8. 2 Objectives You will be able to: Say what a directed graph is. Describe two ways to represent a directed graph: Adjacency.
COSC 2007 Data Structures II
Graphs Chapter 12. Chapter 12: Graphs2 Chapter Objectives To become familiar with graph terminology and the different types of graphs To study a Graph.
© 2006 Pearson Addison-Wesley. All rights reserved 14 A-1 Chapter 14 Graphs.
Graphs Upon completion you will be able to:
Graphs. Contents Terminology Graphs as ADTs Applications of Graphs.
Graphs Chapter 28 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved. Data Structures and Abstractions with Java, 4e Frank Carrano.
Graphs and Paths : Chapter 15 Saurav Karmakar
Chapter 20: Graphs. Objectives In this chapter, you will: – Learn about graphs – Become familiar with the basic terminology of graph theory – Discover.
90-723: Data Structures and Algorithms for Information Processing Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 7: Graphs Data Structures.
Graphs Definition: a graph is an abstract representation of a set of objects where some pairs of the objects are connected by links. The interconnected.
Chapter 05 Introduction to Graph And Search Algorithms.
Lecture #13. Topics 1.The Graph Abstract Data Type. 2.Graph Representations. 3.Elementary Graph Operations.
© Copyright 2012 by Pearson Education, Inc. All Rights Reserved. 1 Chapter 22 Graphs and Applications.
1 GRAPHS – Definitions A graph G = (V, E) consists of –a set of vertices, V, and –a set of edges, E, where each edge is a pair (v,w) s.t. v,w  V Vertices.
Graphs. What is a graph? In simple words, A graph is a set of vertices and edges which connect them. A node (or vertex) is a discrete position in the.
© 2006 Pearson Addison-Wesley. All rights reserved14 B-1 Chapter 14 (continued) Graphs.
Graphs Chapter 20.
Csc 2720 Instructor: Zhuojun Duan
CS202 - Fundamental Structures of Computer Science II
CS120 Graphs.
Graphs Chapter 13.
Graphs Chapter 11 Objectives Upon completion you will be able to:
Copyright ©2012 by Pearson Education, Inc. All rights reserved
Chapter 14 Graphs © 2006 Pearson Addison-Wesley. All rights reserved.
Chapter 14 Graphs © 2011 Pearson Addison-Wesley. All rights reserved.
Chapter 14 Graphs © 2011 Pearson Addison-Wesley. All rights reserved.
Presentation transcript:

© 2006 Pearson Addison-Wesley. All rights reserved14 A-1 Chapter 14 excerpts Graphs (breadth-first-search)

© 2006 Pearson Addison-Wesley. All rights reserved14 A-2 Terminology G = {V, E} A graph G consists of two sets –A set V of vertices, or nodes –A set E of edges A subgraph –Consists of a subset of a graph’s vertices and a subset of its edges Adjacent vertices –Two vertices that are joined by an edge

© 2006 Pearson Addison-Wesley. All rights reserved14 A-3 Terminology Figure 14-2 a) A campus map as a graph; b) a subgraph

© 2006 Pearson Addison-Wesley. All rights reserved14 A-4 Terminology A path between two vertices –A sequence of edges that begins at one vertex and ends at another vertex –May pass through the same vertex more than once A simple path –A path that passes through a vertex only once A cycle –A path that begins and ends at the same vertex A simple cycle –A cycle that does not pass through a vertex more than once

© 2006 Pearson Addison-Wesley. All rights reserved14 A-5 Terminology A connected graph –A graph that has a path between each pair of distinct vertices A disconnected graph –A graph that has at least one pair of vertices without a path between them A complete graph –A graph that has an edge between each pair of distinct vertices

© 2006 Pearson Addison-Wesley. All rights reserved14 A-6 Terminology Figure 14-3 Graphs that are a) connected; b) disconnected; and c) complete

© 2006 Pearson Addison-Wesley. All rights reserved14 A-7 Graphs As ADTs Graphs can be used as abstract data types Two options for defining graphs –Vertices contain values –Vertices do not contain values Operations of the ADT graph –Create an empty graph –Determine whether a graph is empty –Determine the number of vertices in a graph –Determine the number of edges in a graph

© 2006 Pearson Addison-Wesley. All rights reserved14 A-8 Graphs As ADTs Operations of the ADT graph (Continued) –Determine whether an edge exists between two given vertices; for weighted graphs, return weight value –Insert a vertex in a graph whose vertices have distinct search keys that differ from the new vertex’s search key –Insert an edge between two given vertices in a graph –Delete a particular vertex from a graph and any edges between the vertex and other vertices –Delete the edge between two given vertices in a graph –Retrieve from a graph the vertex that contains a given search key

© 2006 Pearson Addison-Wesley. All rights reserved14 A-9 Implementing Graphs Most common implementations of a graph –Adjacency matrix –Adjacency list Adjacency matrix –Adjacency matrix for a graph with n vertices numbered 0, 1, …, n – 1 An n by n array matrix such that matrix[i][j] is –1 (or true) if there is an edge from vertex i to vertex j –0 (or false) if there is no edge from vertex i to vertex j

© 2006 Pearson Addison-Wesley. All rights reserved14 A-10 Implementing Graphs Figure 14-6 a) A directed graph and b) its adjacency matrix

© 2006 Pearson Addison-Wesley. All rights reserved14 A-11 Implementing Graphs Adjacency list –An adjacency list for a graph with n vertices numbered 0, 1, …, n – 1 Consists of n linked lists The i th linked list has a node for vertex j if and only if the graph contains an edge from vertex i to vertex j –This node can contain either »Vertex j’s value, if any »An indication of vertex j’s identity

© 2006 Pearson Addison-Wesley. All rights reserved14 A-12 Implementing Graphs Figure 14-8 a) A directed graph and b) its adjacency list

© 2006 Pearson Addison-Wesley. All rights reserved14 A-13 Graph Traversals A graph-traversal algorithm –Visits all the vertices that it can reach –Visits all vertices of the graph if and only if the graph is connected A connected component –The subset of vertices visited during a traversal that begins at a given vertex –Can loop indefinitely if a graph contains a loop To prevent this, the algorithm must –Mark each vertex during a visit, and –Never visit a vertex more than once

© 2006 Pearson Addison-Wesley. All rights reserved14 A-14 Graph Traversals Figure Visitation order for a) a depth-first search; b) a breadth-first search

© 2006 Pearson Addison-Wesley. All rights reserved14 A-15 Depth-First Search Depth-first search (DFS) traversal –Proceeds along a path from v as deeply into the graph as possible before backing up –Does not completely specify the order in which it should visit the vertices adjacent to v –A last visited, first explored strategy

© 2006 Pearson Addison-Wesley. All rights reserved14 A-16 Breadth-First Search Breadth-first search (BFS) traversal –Visits every vertex adjacent to a vertex v that it can before visiting any other vertex –A first visited, first explored strategy –An iterative form uses a queue –A recursive form is possible, but not simple