Data structure computer graphs

2,761 views

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,761
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
193
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Data structure computer graphs

  1. 1. Graphs
  2. 2. What is a graph?• A data structure that consists of a set of nodes(vertices) and a set of edges that relate the nodesto each other• The set of edges describes relationships among thevertices
  3. 3. Formal definition of graphs• A graph G is defined as follows:G=(V,E)V(G): a finite, nonempty set of verticesE(G): a set of edges (pairs of vertices)
  4. 4. Directed vs. undirected graphs• When the edges in a graph have nodirection, the graph is called undirected
  5. 5. • When the edges in a graph have a direction,the graph is called directed (or digraph)Directed vs. undirected graphs(cont.)E(Graph2) = {(1,3) (3,1) (5,9) (9,11)(5,7)Warning: if the graph isdirected, the order of thevertices in each edge isimportant !!
  6. 6. • Trees are special cases of graphs!!Trees vs graphs
  7. 7. Graph terminology• Adjacent nodes: two nodes are adjacent ifthey are connected by an edge• Path: a sequence of vertices that connecttwo nodes in a graph• Complete graph: a graph in which everyvertex is directly connected to every othervertex5 is adjacent to 77 is adjacent from 5
  8. 8. • What is the number of edges in a completedirected graph with N vertices?N * (N-1)Graph terminology (cont.)
  9. 9. • What is the number of edges in a completeundirected graph with N vertices?N * (N-1) / 2Graph terminology (cont.)
  10. 10. Graph terminology (cont.)• Multi-graph• Cycle• Loop
  11. 11. • Weighted graph: a graph in which each edgecarries a valueGraph terminology (cont.)
  12. 12. Graph implementation• Array-based implementation– A 1D array is used to represent the vertices– A 2D array (adjacency matrix) is used torepresent the edges
  13. 13. Array-based implementation-Adjacency Matrix
  14. 14. Graph implementation (cont.)• Linked-list implementation– A 1D array is used to represent the vertices– A list is used for each vertex v which contains thevertices which are adjacent from v (adjacency list)
  15. 15. Linked-list implementation
  16. 16. Adjacency Matrix for Un-Weighted Graphs1. Adjacency Matrix2. Matrix for edges3. Matrix for 2 length paths4. Matrix for 3 length paths5. Matrix for n length paths6. Path Matrix7. Completely Connected Graph
  17. 17. Graph searching• Problem: find a path between two nodes ofthe graph (e.g., Austin and Washington)• Methods: Depth-First-Search (DFS) orBreadth-First-Search (BFS)
  18. 18. Depth-First-Search (DFS)• What is the idea behind DFS?– Travel as far as you can down a path– Back up as little as possible when you reach a"dead end" (i.e., next vertex has been "marked"or there is no next vertex)• DFS can be implemented efficiently using astack
  19. 19. DFS• Algorithm:Starting Node is A1. Initialize all nodes to ready state(Status=1)2. Push starting nose A onto Stack and change its status towaiting state (Status=2).3.Repeat steps 4 & 5 until STACK is empty.4. Pop Top node N. Process N and change its Status to the processedstate (Status=3).5.Push onto Stack all the neighbors of N that are still in ready stateand change their state as waiting state(State=2).6. Exit.
  20. 20. Breadth-First-Searching (BFS)• What is the idea behind BFS?– Look at all possible paths at the same depthbefore you go at a deeper level– Back up as far as possible when you reach a"dead end" (i.e., next vertex has been "marked"or there is no next vertex)
  21. 21. BFS• Algorithm:Starting Node is A1. Initialize all nodes to ready state(Status=1)2. Push starting nose A onto Queue and change its status towaiting state (Status=2).3.Repeat steps 4 & 5 until Queue is empty.4. Remove the front node N. Process N and change its Status to theprocessed state (Status=3).5.Add to the rear of Queue all the neighbors of N that are still inready state and change their state to waiting (State=2).6. Exit.
  22. 22. • Examples of Both DFS & BFS.

×