graph
Download
Skip this Video
Download Presentation
Graph

Loading in 2 Seconds...

play fullscreen
1 / 47

Graph - PowerPoint PPT Presentation


  • 143 Views
  • Uploaded on

Graph. Data Structures. Linear data structures: Array, linked list, stack, queue Non linear data structures: Tree, binary tree, graph and digraph. 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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Graph' - sara-casey


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
data structures
Data Structures
  • Linear data structures:
    • Array, linked list, stack, queue
  • Non linear data structures:
    • Tree, binary tree, graph and digraph
graph1
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

graphs

u

  • v
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).
graphs1

u

u

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

2

3

8

1

10

4

5

9

11

6

7

Undirected Graph

G = (V, E)

V = {1,2,…11}

E = { (2,1),

(4,1),

…}

directed graph digraph

2

3

8

1

10

4

5

9

11

6

7

Directed Graph (Digraph)

G = (V, E)

V = {1,2,…11}

E = { (1,2),

(1,4),

…}

applications communication network

2

3

8

1

10

4

5

9

11

6

7

Applications—Communication Network
  • Vertex = city, edge = communication link.
driving distance time map

2

4

3

8

8

1

6

10

2

4

5

4

4

3

5

9

11

5

6

7

6

7

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)
street map

2

3

8

1

10

4

5

9

11

6

7

Street Map
  • Some streets are one way.
  • Find a path from 111
complete undirected graph

n = 4

n = 1

n = 2

n = 3

Complete Undirected Graph

Has all possible edges.

number of edges undirected graph
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.
complete directed graph

n = 4

n = 1

n = 2

n = 3

Complete directed Graph

Has all possible edges.

number of edges directed graph
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).
vertex degree

2

3

8

1

10

4

5

9

11

6

7

Vertex Degree

Number of edges incident to vertex.

degree(2) = 2, degree(5) = 3, degree(3) = 1

sum of vertex degrees

8

10

9

11

Sum Of Vertex Degrees

Sum of degrees = 2e (e is number of edges)

in degree of a vertex

2

3

8

1

10

4

5

9

11

6

7

In-Degree Of A Vertex

in-degree is number of incoming edges

indegree(2) = 1, indegree(8) = 0

out degree of a vertex

2

3

8

1

10

4

5

9

11

6

7

Out-Degree Of A Vertex

out-degree is number of outbound edges

outdegree(2) = 1, outdegree(8) = 2

sum of in and out degrees
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

sample graph problems
Sample Graph Problems
  • Path problems.
  • Connectedness problems.
  • Spanning tree problems.
path finding

2

4

3

8

8

1

6

10

2

4

5

4

4

3

5

9

11

5

6

7

6

7

Path Finding

Path between 1 and 8.

Path length is 20.

another path between 1 and 8

2

4

3

8

8

1

6

10

2

4

5

4

4

3

5

9

11

5

6

7

6

7

Another Path Between 1 and 8

Path length is 28.

example of no path

2

3

8

1

10

4

5

9

11

6

7

Example Of No Path

No path between 2 and 9.

connected graph
Connected Graph
  • Undirected graph.
  • There is a path between every pair of vertices.
connected component
Connected Component
  • A maximal subgraph that is connected.
  • A connected graph has exactly 1 component.
not a component

2

3

8

1

10

4

5

9

11

6

7

Not A Component
communication network

2

3

8

1

10

4

5

9

11

6

7

Communication Network

Each edge is a link that can be constructed

communication network problems
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).
cycles and connectedness

2

3

8

1

10

4

5

9

11

6

7

Cycles And Connectedness

Removal of an edge that is on a cycle does not affect connectedness.

cycles and connectedness1
Cycles And Connectedness

2

Connected subgraph with all vertices and minimum number of edges has no cycles.

3

8

1

10

4

5

9

11

6

7

slide35
Tree
  • Connected graph that has no cycles.
  • n vertex connected graph with n-1 edges.
graph representation
Graph Representation
  • Adjacency Matrix
  • Adjacency Lists
    • Linked Adjacency Lists
    • Array Adjacency Lists
adjacency matrix

1

2

3

4

5

2

1

3

2

1

3

4

4

5

5

Adjacency Matrix
  • 0/1 n x n matrix, where n = # of vertices
  • A(i,j) = 1 iff (i,j) is an edge

0

1

0

1

0

1

0

0

0

1

0

0

0

0

1

1

0

0

0

1

0

1

1

1

0

adjacency matrix properties

1

2

3

4

5

2

1

0

1

0

1

0

3

2

1

0

0

0

1

1

3

0

0

0

0

1

4

4

1

0

0

0

1

5

5

0

1

1

1

0

Adjacency Matrix Properties
  • Diagonal entries are zero.
  • Adjacency matrix of an undirected graph is symmetric.
    • A(i,j) = A(j,i) for alliand j.
adjacency matrix digraph

1

2

3

4

5

2

1

0

0

0

1

0

3

2

1

0

0

0

1

1

3

0

0

0

0

0

4

4

0

0

0

0

1

5

5

0

1

1

0

0

Adjacency Matrix (Digraph)
  • Diagonal entries are zero.
  • Adjacency matrix of a digraph need not be symmetric.
adjacency matrix1
Adjacency Matrix
  • n2bits of space
  • For an undirected graph, may store only lower or upper triangle (exclude diagonal).
    • (n-1)n/2 bits
adjacency lists

2

3

1

4

5

Adjacency Lists
  • Adjacency list for vertex i is a linear list ofvertices adjacent from vertex i.
  • An array of n adjacency lists.

aList[1] = (2,4)

aList[2] = (1,5)

aList[3] = (5)

aList[4] = (5,1)

aList[5] = (2,4,3)

linked adjacency lists

2

aList[1]

2

4

3

[2]

1

5

[3]

5

1

[4]

5

1

4

aList[5]

2

4

3

5

Linked Adjacency Lists
  • Each adjacency list is a chain.

Array Length = n

# of chain nodes = 2e (undirected graph)

# of chain nodes = e (digraph)

array adjacency lists

2

aList[1]

2

4

3

[2]

1

5

[3]

5

1

[4]

5

1

4

aList[5]

2

4

3

5

Array Adjacency Lists
  • Each adjacency list is an array list.

Array Length = n

# of list elements = 2e (undirected graph)

# of list elements = e (digraph)

number of c classes needed
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
abstract class graph

Abstract Class Graph

template<class T>

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

abstract methods of graph

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<T>*) = 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;

abstract methods of graph1

Abstract Methods Of Graph

// ADT methods (continued)

virtual bool directed() const = 0;

virtual bool weighted() const = 0;

virtual vertexIterator<T>* iterator(int) = 0;

virtual void output(ostream&) const = 0;

ad