CSE 373 Data Structures and Algorithms

Slides:



Advertisements
Similar presentations
CSC401 – Analysis of Algorithms Lecture Notes 14 Graph Biconnectivity
Advertisements

CSE 373 Graphs 1: Concepts, Depth/Breadth-First Search
Graphs Chapter 30 Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved X.
CSC 213 – Large Scale Programming Lecture 27: Graph ADT.
CSC 213 Lecture 23: Shortest Path Algorithms. Weighted Graphs Each edge in weighted graph has numerical weight Weights can be distances, building costs,
Introduction to Graphs
Introduction to Graphs What is a Graph? Some Example applications of Graphs. Graph Terminologies. Representation of Graphs. –Adjacency Matrix. –Adjacency.
CSE 373: Data Structures and Algorithms Lecture 18: Graphs II 1.
Graphs Chapter 28 Copyright ©2012 by Pearson Education, Inc. All rights reserved.
Graphs – Shortest Path (Weighted Graph) ORD DFW SFO LAX
Intro to Graphs CSIT 402 Data Structures II. CSIT 402 Graph Introduction2 Graphs Graphs are composed of ›Nodes (vertices) Can be labeled ›Edges (arcs)
Chapter 9 – Graphs A graph G=(V,E) – vertices and edges
Lecture17: Graph I Bohyung Han CSE, POSTECH CSED233: Data Structures (2014F)
Graphs – ADTs and Implementations ORD DFW SFO LAX
Graphs Chapter 12.
CSC 213 – Large Scale Programming. Today’s Goals  Discuss what is NOT meant by term “Graph”  Why no bar charts, scatter plots, & pie charts mentioned.
Introduction to Graphs. Introduction Graphs are a generalization of trees –Nodes or verticies –Edges or arcs Two kinds of graphs –Directed –Undirected.
Graphs CSE 2011 Winter June Graphs A graph is a pair (V, E), where  V is a set of nodes, called vertices  E is a collection of pairs.
Spring 2007Graphs1 ORD DFW SFO LAX
CSE 373: Data Structures and Algorithms
Programming Abstractions Cynthia Lee CS106X. Upcoming Topics Graphs! 1.Basics  What are they? How do we represent them? 2.Theorems  What are some things.
Graphs Chapter 28 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved. Data Structures and Abstractions with Java, 4e Frank Carrano.
CHAPTER 13 GRAPH ALGORITHMS ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN C++, GOODRICH, TAMASSIA.
Graph Concepts Illustrated Using The Leda Library Amanuel Lemma CS252 Algorithms.
Department of Computer Engineering Faculty of Engineering, Prince of Songkla University Graphs Original Slides by Rada Mihalcea.
CHAPTER 13 GRAPH ALGORITHMS ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN C++, GOODRICH, TAMASSIA.
1 GRAPH Learning Outcomes Students should be able to: Explain basic terminology of a graph Identify Euler and Hamiltonian cycle Represent graphs using.
Programming Abstractions Cynthia Lee CS106B. Upcoming Topics Graphs! 1.Basics  What are they? How do we represent them? 2.Theorems  What are some things.
Graphs ORD SFO LAX DFW Graphs 1 Graphs Graphs
Graphs.
Graphs 5/14/ :46 PM Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and.
Unit 10 Graphs (1) King Fahd University of Petroleum & Minerals
Introduction to Graphs
Graphs 7/18/2018 7:39 AM Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and.
Graphs ORD SFO LAX DFW Graphs Graphs
Graphs ORD SFO LAX DFW Graphs Graphs
Introduction to Graphs
CMSC 341 Lecture 21 Graphs (Introduction)
CSE 373: Data Structures and Algorithms
Discrete Maths 9. Graphs Objective
Biconnectivity SEA PVD ORD FCO SNA MIA 11/16/2018 2:31 AM
Graphs ORD SFO LAX DFW Graphs Graphs
Graphs.
Graphs ORD SFO LAX DFW Graphs Graphs
Graphs CSE 2011 Winter November 2018.
Graphs All tree structures are hierarchical. This means that each node can only have one parent node. Trees can be used to store data which has a definite.
Graphs Chapter 11 Objectives Upon completion you will be able to:
Graphs.
CSE 373: Data Structures and Algorithms
Graph Theory By Amy C. and John M..
Graphs.
Graph Terminology CSE 373 Data Structures.
CC 215 Data Structures Graph Terminology
CSE 373 Data Structures Lecture 17
Graphs ORD SFO LAX DFW Graphs Graphs
Graphs 4/29/15 01:28:20 PM Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia,
Algorithms: Design and Analysis
Graphs ORD SFO LAX DFW /15/ :57 AM
Shortest Paths.
Graphs.
Graphs G = (V, E) V are the vertices; E are the edges.
Graph Terminology CSE 373 Data Structures.
Biconnectivity SEA PVD ORD FCO SNA MIA 5/6/2019 5:08 PM Biconnectivity
Graphs.
CSE 373 Graphs 3: Implementation reading: Weiss Ch. 9
Biconnectivity SEA PVD ORD FCO SNA MIA 5/23/ :21 PM
CSE 373 Data Structures Lecture 13
Heaps Chapter 6 Section 6.9.
Introduction to Graphs
Introduction to Graphs
Presentation transcript:

CSE 373 Data Structures and Algorithms Lecture 19: Graphs

What are graphs? Yes, this is a graph…. But we are interested in a different kind of “graph”

Airline Routes Nodes = cities Edges = direct flights

Computer Networks 56 Tokyo Seattle Seoul 128 16 181 New York 30 140 L.A. Tokyo Sydney Seoul 128 140 181 30 16 56 Nodes = computers Edges = transmission rates

CSE Course Prerequisites at UW 461 312 373 143 311 332 142 410 415 331 351 413 417 421 Nodes = courses Directed edge = prerequisite 401

Graphs graph: a data structure containing Denote graph as G = (V, E) a set of vertices V a set of edges E, where an edge represents a connection between 2 vertices edge is a pair (v, w) where v, w in V Denote graph as G = (V, E) Example: G = (V,E) where V = {a, b, c} and E = {(a, b), (b, c), (c, a)}

Paths path: a path from vertex A to B is a sequence of edges that can be followed starting from A to reach B Can be represented as vertices visited or edges taken Example: path from V to Z: {b, h} or {(v,x), (x,z)} or {V, X, Z} reachability: v2 is reachable from v1 if a path exists from v1 to v2 connected graph: one in which it is possible to reach any node from any other Is this graph connected? X U V W Z Y a c b e d f g h

Cycles cycle: path from one node back to itself Example: {V, X, Y, W, U, V} loop: edge directly from node to itself Many graphs don't allow loops X U V W Z Y a c b e d f g h

More terminology degree: number of edges touching a vertex Example: W has degree 4 What is the degree of X? of Z? adjacent vertices: vertices connected directly by an edge X U V W Z Y a c b e d f g h i j

Weighted graphs weight: (optional) cost associated with a given edge Example: graph of airline flights If we were programming this graph, what information would we have to store for each vertex / edge? ORD PVD MIA DFW SFO LAX LGA HNL 849 802 1387 1743 1843 1099 1120 1233 337 2555 142

Directed graphs directed graph (digraph): edges are one-way connections between vertices If graph is directed, a vertex has a separate in/out degree

Trees as Graphs Every tree is a graph with some restrictions: The tree is directed There is exactly one directed path from the root to every node A B D E C F H G

Graph questions Are the following graphs directed or undirected? Buddy graphs of instant messaging programs? (vertices = users, edges = user being on another's buddy list) bus line graph depicting all of Seattle's bus stations and routes graph of movies in which actors have appeared together Are these graphs potentially cyclic? Why or why not?

Graph exercise Consider a graph of instant messenger buddies. What do the vertices represent? What does an edge represent? Is this graph directed or undirected? Weighted or unweighted? What does a vertex's degree mean? In degree? Out degree? Can the graph contain loops? Cycles?

Graph exercise Consider this graph data: Jessica's buddy list: Meghan, Alan, Martin. Meghan's buddy list: Alan, Lori. Toni's buddy list: Lori, Meghan. Martin's buddy list: Lori, Meghan. Alan's buddy list: Martin, Jessica. Lori's buddy list: Meghan. Compute the in/out degree of each vertex. Is the graph connected? Who is the most popular? Least? Who is the most antisocial? If we're having a party and want to distribute the message the most quickly, who should we tell first?

Graph exercise Consider a graph of Facebook friends. What do the vertices represent? What does an edge represent? Is this graph directed or undirected? Weighted or unweighted? What does a vertex's degree mean? In degree? Out degree? Can the graph contain loops? Cycles?