1 / 18

Graphs

Graphs. CSC 220 Data Structure. Introduction. One of the Most versatile data structures like trees. Terminology Nodes in trees are vertices in graphs. Lines connecting vertices are edges . Each edge is bounded by two vertices at its ends.

Sophia
Download Presentation

Graphs

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. Graphs CSC 220 Data Structure

  2. Introduction • One of the Most versatile data structures like trees. • Terminology • Nodes in trees are vertices in graphs. • Lines connecting vertices are edges. • Each edge is bounded by two vertices at its ends. • Two vertices are said to be adjacent to one another if they are connected by a single edge.

  3. Introduction (Terminology) • Vertices adjacent to a given vertex are called its neighbors. • A path is a sequence of edges. • A graph is said to be connected if there is at least one path from every vertex to every other vertex. • A non-connected graph consists of several connected components.

  4. Sample of graph app

  5. Connected vs Non-connected graph Connected graph Non-Connected graph

  6. Directed and Weighted Graphs • Undirected graphs - edges don’t have a direction. • Can travel in any direction. • Directed graphs – can traverse in only the indicated direction. • Weight – number that represents physical distance or time or cost between two vertices.

  7. Sample of graph app

  8. Representing Graphs • Vertices can be represented by a vertex class (i.e.similar to node or link in LL). • Vertex objects can be placed in • an array, • list or • other data structure. • Graphs can be represented using adjacency matrix or adjacency list.

  9. Representing Graphs • Adjacency matrix – 2-dimensional array in which elements indicate whether an edge is present between two vertices. • Edge is represented by 1. • Or Edge is represented by weight • Adjacency List – array of lists or list of lists. • Each individual list shows what vertices a given vertex is adjacent to.

  10. Go to the white board

  11. Search • Fundamental operation, to find out which vertices can be reached from a specified vertex. • An algorithm that provides a systematic way to start at a specified vertex and then move along edges to other vertex. • Every vertex that is connected to this vertex has to be visited at the end. • Two common approaches : • depth-first (DFS) and • breadth-first search (BFS).

  12. DFS • Can be implemented with a stack to remember where it should go when it reaches a dead end. • DFS goes far way from the starting point as quickly as possible and returns only if it reaches a dead end. • Used in simulations of games

  13. DFS There are 3 rules -- start with a vertex R1 a. go to any vertex adjacent to it that hasn’t yet been visited b. push it on a stack and mark it R2 if can’t follow R1, then possible pop up a vertex off the stack R3 if can’t follow R1 and R2, you’re done

  14. DFS • Steps: -- start with a vertex -- visit it -- push it on a stack and mark it -- go to any vertex adjacent to it that hasn’t yet been visited -- if there are no unvisited nodes, pop a vertex off the stack till you come across a vertex that has unvisited adjacent vertices

  15. Breadth-First Search BFS • Implemented with a queue. • Stays as close as possible to the starting point. • Visits all the vertices adjacent to the starting vertex

  16. BFS • Steps: -- start with visiting a starting vertex -- visit the next unvisited adjacent vertex, mark it and insert it into the queue. -- if there are no unvisited vertices, remove a vertex from the queue and make it the current vertex. -- continue until you reach the end.

  17. Minimum Spanning Tree(MST)

  18. MST • DSF application -> display visited edges • Example Application • Reduce paths and pins in VLSI (Chip) design and fabrication

More Related