1 / 8

ITEC 2620M Introduction to Data Structures

ITEC 2620M Introduction to Data Structures. Instructor: Prof. Z. Yang Course Website: http://people.math.yorku.ca/~zyang/itec2620m.htm Office: TEL 3049. Graphs. Key Points of this Lecture. Graph Algorithms Definitions, representations, analysis Shortest paths Minimum-cost spanning tree.

Download Presentation

ITEC 2620M Introduction to Data Structures

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ITEC 2620MIntroduction to Data Structures Instructor: Prof. Z. Yang Course Website: http://people.math.yorku.ca/~zyang/itec2620m.htm Office: TEL 3049

  2. Graphs

  3. Key Points of this Lecture • Graph Algorithms • Definitions, representations, analysis • Shortest paths • Minimum-cost spanning tree

  4. Basic Definitions • A graph G = ( V, E ) consists of a set of vertices V and a set of edges E – each edge E connects a pair of vertices in V. • Graphs can be directed or undirected • redraw above with arrows – first vertex is source • Graphs may be weighted • redraw above with weights, combine definitions • A vertex vi is adjacent to another vertex vj if they are connected by an edge in E. These vertices are neighbours • A path is a sequence of vertices in which each vertex is adjacent to its predecessor and successor • The length of a path is the number of edges in it • The cost of a path is the sum of edge weights in the path

  5. Basic Definitions (Cont’d) • A cycle is a path of length greater than one that begins and ends at the same vertex • A simple cycle is a cycle of length greater than three that does not visit any vertex (except the start/finish) more than once • Two vertices are connected if there as a path between them • A subset of vertices S is a connected component of G if there is a path from each vertex vi to every other distinct vertex vj in S • The degree of a vertex is the number of edges incident to it – the number of vertices that it is connected to • A graph is acyclic if it has no cycles (e.g. a tree) • A directed acyclic graph is called a DAG or digraph(useful for unidirectional relationships

  6. Representations • The adjacency matrix of graph G = ( V, E ) for vertices numbered 0 to n-1 is an n x n matrix M where M[i][j] is 1 if there is an edge from vi to vi, and 0 otherwise. • The adjacency list of graph G = ( V, E ) for vertices numbered 0 to n-1 consists of an array of n linked lists. The ith linked list includes the node j if there is an edge from vi to vi. • Example

  7. Comparisons and Analysis • Space • adjacency matrix uses O(|V|2) space (constant) • adjacency list uses O(|V| + |E|) space (note: pointer overhead) • better for sparse graphs (graphs with few edges) • Access Time • Is there an edge connecting vi to vj? • adjacency matrix – O(1) • adjacency list – O(d) • Visit all edges incident to vi • adjacency matrix – O(n) • adjacency list – O(d) • Primary operation of algorithm and density of graph determines more efficient data structure • complete graphs should use adjacency matrix • traversals of sparse graphs should use adjacency list

  8. Spanning Tree and Shortest Paths • Minimum-Cost Spanning Tree • assume weighted (undirected) connected graph • use Prim’s algorithm (a greedy algorithm) • from visited vertices, pick least-cost edge to an unvisited vertex • Shortest Paths • assume weighted (undirected) connected graph • use Dijkstra’s algorithm (a greedy algorithm) • build paths from unvisited vertex with least current cost

More Related