Presentation is loading. Please wait.

Presentation is loading. Please wait.

Graph. Data Structures Linear data structures: –Array, linked list, stack, queue Non linear data structures: –Tree, binary tree, graph and digraph.

Similar presentations


Presentation on theme: "Graph. Data Structures Linear data structures: –Array, linked list, stack, queue Non linear data structures: –Tree, binary tree, graph and digraph."— Presentation transcript:

1 Graph

2 Data Structures Linear data structures: –Array, linked list, stack, queue Non linear data structures: –Tree, binary tree, graph and digraph

3 Graph A graph is a non-linear structure (also called a network) Unlike a tree or binary tree, a graph does not have a root Any node (vertex, v) can be connected to any other node by an edge (e) Can have any number of edges (E) and nodes (set of Vertex V) Application: the highway system connecting cities on a map a graph data structure

4 Graphs G = (V,E) V is the vertex set (nodes set). Vertices are also called nodes and points. E is the edge set. Each edge connects two different vertices. Edges are also called arcs and lines. Directed edge has an orientation (u,v). uv

5 Graphs Undirected edge has no orientation (u,v). uv Undirected graph => no oriented edge. Directed graph => every edge has an orientation. uv

6 Undirected Graph 2 3 8 10 1 4 5 9 11 6 7 G = (V, E) V = {1,2,…11} E = { (2,1), (4,1), …}

7 Directed Graph (Digraph) 2 3 8 10 1 4 5 9 11 6 7 G = (V, E) V = {1,2,…11} E = { (1,2), (1,4), …}

8 Applications—Communication Network Vertex = city, edge = communication link. 2 3 8 10 1 4 5 9 11 6 7

9 Driving Distance/Time Map Vertex = city, edge weight = driving distance/time. Find a shortest path from city 1 to city 5 –1  2  5 (12) –1  4  6  7  5 (14) 2 3 8 10 1 4 5 9 11 6 7 4 8 6 6 7 5 2 4 4 5 3

10 Street Map Some streets are one way. Find a path from 1  11 2 3 8 10 1 4 5 9 11 6 7

11 Complete Undirected Graph Has all possible edges. n = 1 n = 2 n = 3 n = 4

12 Number Of Edges—Undirected Graph Each edge is of the form (u,v), u != v. Number of such pairs in an n vertex graph is n(n-1). Since edge (u,v) is the same as edge (v,u), the number of edges in a complete undirected graph is n(n-1)/2. Number of edges in an undirected graph is <= n(n-1)/2.

13 Complete directed Graph Has all possible edges. n = 1 n = 2 n = 3 n = 4

14 Number Of Edges—Directed Graph Each edge is of the form (u,v), u != v. Number of such pairs in an n vertex graph is n(n-1). Since edge (u,v) is not the same as edge (v,u), the number of edges in a complete directed graph is n(n-1). Number of edges in a directed graph is <= n(n-1).

15 Vertex Degree Number of edges incident to vertex. degree(2) = 2, degree(5) = 3, degree(3) = 1 2 3 8 10 1 4 5 9 11 6 7

16 Sum Of Vertex Degrees Sum of degrees = 2e (e is number of edges) 8 10 9 11

17 In-Degree Of A Vertex in-degree is number of incoming edges indegree(2) = 1, indegree(8) = 0 2 3 8 10 1 4 5 9 11 6 7

18 Out-Degree Of A Vertex out-degree is number of outbound edges outdegree(2) = 1, outdegree(8) = 2 2 3 8 10 1 4 5 9 11 6 7

19 Sum Of In- And Out-Degrees each edge contributes 1 to the in-degree of some vertex and 1 to the out-degree of some other vertex sum of in-degrees = sum of out-degrees = e, where e is the number of edges in the digraph

20 Graph Operations And Representation

21 Sample Graph Problems Path problems. Connectedness problems. Spanning tree problems.

22 Path Finding Path between 1 and 8. 2 3 8 10 1 4 5 9 11 6 7 4 8 6 6 7 5 2 4 4 5 3 Path length is 20.

23 Another Path Between 1 and 8 2 3 8 10 1 4 5 9 11 6 7 4 8 6 6 7 5 2 4 4 5 3 Path length is 28.

24 Example Of No Path No path between 2 and 9. 2 3 8 10 1 4 5 9 11 6 7

25 Connected Graph Undirected graph. There is a path between every pair of vertices.

26 Example Of Not Connected 2 3 8 10 1 4 5 9 11 6 7

27 Connected Graph Example 2 3 8 10 1 4 5 9 11 6 7

28 Connected Components 2 3 8 10 1 4 5 9 11 6 7

29 Connected Component A maximal subgraph that is connected. A connected graph has exactly 1 component.

30 Not A Component 2 3 8 10 1 4 5 9 11 6 7

31 Communication Network Each edge is a link that can be constructed 2 3 8 10 1 4 5 9 11 6 7

32 Communication Network Problems Is the network connected?  Can we communicate between every pair of cities? Find the components. Want to construct smallest number of links so that resulting network is connected (finding a minimum spanning tree).

33 Cycles And Connectedness 2 3 8 10 1 4 5 9 11 6 7 Removal of an edge that is on a cycle does not affect connectedness.

34 Cycles And Connectedness 2 3 8 10 1 4 5 9 11 6 7 Connected subgraph with all vertices and minimum number of edges has no cycles.

35 Tree Connected graph that has no cycles. n vertex connected graph with n-1 edges.

36 Graph Representation Adjacency Matrix Adjacency Lists  Linked Adjacency Lists  Array Adjacency Lists

37 Adjacency Matrix 0/1 n x n matrix, where n = # of vertices A(i,j) = 1 iff (i,j) is an edge 2 3 1 4 5 12345 1 2 3 4 5 01010 10001 00001 10001 01110

38 Adjacency Matrix Properties 2 3 1 4 5 12345 1 2 3 4 5 01010 10001 00001 10001 01110 Diagonal entries are zero. Adjacency matrix of an undirected graph is symmetric.  A(i,j) = A(j,i) for all i and j.

39 Adjacency Matrix (Digraph) 2 3 1 4 5 12345 1 2 3 4 5 00010 10001 00000 00001 01100 Diagonal entries are zero. Adjacency matrix of a digraph need not be symmetric.

40 Adjacency Matrix n 2 bits of space For an undirected graph, may store only lower or upper triangle (exclude diagonal).  (n-1)n/2 bits

41 Adjacency Lists Adjacency list for vertex i is a linear list of vertices adjacent from vertex i. An array of n adjacency lists. 2 3 1 4 5 aList[1] = (2,4) aList[2] = (1,5) aList[3] = (5) aList[4] = (5,1) aList[5] = (2,4,3)

42 Linked Adjacency Lists Each adjacency list is a chain. 2 3 1 4 5 aList[1] aList[5] [2] [3] [4] 24 15 5 51 243 Array Length = n # of chain nodes = 2e (undirected graph) # of chain nodes = e (digraph)

43 Array Adjacency Lists Each adjacency list is an array list. 2 3 1 4 5 aList[1] aList[5] [2] [3] [4] 24 15 5 51 243 Array Length = n # of list elements = 2e (undirected graph) # of list elements = e (digraph)

44 Number Of C++ Classes Needed Graph representations  Adjacency Matrix  Adjacency Lists  Linked Adjacency Lists  Array Adjacency Lists  3 representations Graph types  Directed and undirected.  Weighted and unweighted.  2 x 2 = 4 graph types 3 x 4 = 12 C++ classes

45 Abstract Class Graph template class graph { public: // ADT methods come here // implementation independent methods come here }; http://www.boost.org/doc/libs/1_42_0/libs/graph/doc/index.html

46 Abstract Methods Of Graph // ADT methods virtual ~graph() {} virtual int numberOfVertices() const = 0; virtual int numberOfEdges() const = 0; virtual bool existsEdge(int, int) const = 0; virtual void insertEdge(edge *) = 0; virtual void eraseEdge(int, int) = 0; virtual int degree(int) const = 0; virtual int inDegree(int) const = 0; virtual int outDegree(int) const = 0;

47 Abstract Methods Of Graph // ADT methods (continued) virtual bool directed() const = 0; virtual bool weighted() const = 0; virtual vertexIterator * iterator(int) = 0; virtual void output(ostream&) const = 0;


Download ppt "Graph. Data Structures Linear data structures: –Array, linked list, stack, queue Non linear data structures: –Tree, binary tree, graph and digraph."

Similar presentations


Ads by Google