Presentation is loading. Please wait.

Presentation is loading. Please wait.

CC 215 Data Structures Graph Terminology

Similar presentations


Presentation on theme: "CC 215 Data Structures Graph Terminology"— Presentation transcript:

1 CC 215 Data Structures Graph Terminology
AASTMT Engineering and Technology College CC 215 Data Structures Graph Terminology Lecture 13 Dr. Manal Helal - Fall 2014

2 Reading Reading Section 9.1

3 What are graphs? Yes, this is a graph….
But we are interested in a different kind of “graph”

4 Graphs Graphs are composed of Nodes (vertices) Edges (arcs) node edge

5 Varieties Nodes Labeled or unlabeled Edges Directed or undirected

6 Motivation for Graphs 94 10 97 96 99 node node
Consider the data structures we have looked at so far… Linked list: nodes with 1 incoming edge + 1 outgoing edge Binary trees/heaps: nodes with 1 incoming edge + 2 outgoing edges B-trees: nodes with 1 incoming edge + multiple outgoing edges Value Next Value Next 94 10 97 3 5 96 99

7 Motivation for Graphs How can you generalize these data structures?
Consider data structures for representing the following problems…

8 Design the graph for CC courses prerequisites in AASTMT
Course Prerequisites 461 322 373 143 321 326 415 142 410 370 341 413 417 378 Nodes = courses Directed edge = prerequisite 421 401

9 Representing a Maze S S B E E Nodes = rooms Edge = door or passage

10 Representing Electrical Circuits
Battery Switch Nodes = battery, switch, resistor, etc. Edges = connections Resistor

11 Program statements Nodes = symbols/operators Edges = relationships x1
x1=q+y*z + - x2=y*z-q Naive: q * * q y*z calculated twice y z x1 x2 common subexpression + - eliminated: q * q Nodes = symbols/operators Edges = relationships y z

12 Precedence Nodes = statements Edges = precedence requirements S1 a=0;
S2 b=1; S3 c=a+1 S4 d=b+a; S5 e=d+1; S6 e=c+d; 6 5 Which statements must execute before S6? S1, S2, S3, S4 4 3 Nodes = statements Edges = precedence requirements 2 1

13 Information Transmission in a Computer Network
Sydney 56 Tokyo Seattle Seoul 128 New York 16 181 30 140 L.A. Nodes = computers Edges = transmission rates

14 Traffic Flow on Highways
UW Nodes = cities Edges = # vehicles on connecting highway

15 Graph Definition A graph is simply a collection of nodes plus edges
Linked lists, trees, and heaps are all special cases of graphs The nodes are known as vertices (node = “vertex”) Formal Definition: A graph G is a pair (V, E) where V is a set of vertices or nodes E is a set of edges that connect vertices

16 Graph Example Here is a directed graph G = (V, E)
Each edge is a pair (v1, v2), where v1, v2 are vertices in V V = {A, B, C, D, E, F} E = {(A,B), (A,D), (B,C), (C,D), (C,E), (D,E)} B C A F D E

17 Directed vs Undirected Graphs
If the order of edge pairs (v1, v2) matters, the graph is directed (also called a digraph): (v1, v2)  (v2, v1) If the order of edge pairs (v1, v2) does not matter, the graph is called an undirected graph: in this case, (v1, v2) = (v2, v1) v2 v1 v1 v2

18 Undirected Terminology
Two vertices u and v are adjacent in an undirected graph G if {u,v} is an edge in G edge e = {u,v} is incident with vertex u and vertex v The degree of a vertex in an undirected graph is the number of edges incident with it a self-loop counts twice (both ends count) denoted with deg(v)

19 Undirected Terminology
B is adjacent to C and C is adjacent to B (A,B) is incident to A and to B B C Self-loop A F D E Degree = 0 Degree = 3

20 Directed Terminology Vertex u is adjacent to vertex v in a directed graph G if (u,v) is an edge in G vertex u is the initial vertex of (u,v) Vertex v is adjacent from vertex u vertex v is the terminal (or end) vertex of (u,v) Degree in-degree is the number of edges with the vertex as the terminal vertex out-degree is the number of edges with the vertex as the initial vertex

21 Directed Terminology B C A F D E B adjacent to C and C adjacent from B
In-degree = 0 Out-degree = 0 In-degree = 2 Out-degree = 1

22 Handshaking Theorem Let G=(V,E) be an undirected graph with |E|=e edges. Then Every edge contributes +1 to the degree of each of the two vertices it is incident with number of edges is exactly half the sum of deg(v) the sum of the deg(v) values must be even Add up the degrees of all vertices.

23 Graph Representations
Space and time are analyzed in terms of: Number of vertices = |V| and Number of edges = |E| There are at least two ways of representing graphs: The adjacency matrix representation The adjacency list representation

24 Adjacency Matrix A B C D E F B A B C D E F 0 1 0 1 0 0 C A 1 0 1 0 0 0
C A F D E 1 if (v, w) is in E M(v, w) = 0 otherwise Space = |V|2

25 Adjacency Matrix for a Digraph
A B C D E F B A B C D E F C A F D E 1 if (v, w) is in E M(v, w) = 0 otherwise Space = |V|2

26 Adjacency List For each v in V, L(v) = list of w such that (v, w) is in E a b A B C D E F list of neighbors B B D C A A C B D E F D E A C E C D Space = a |V| + 2 b |E|

27 Adjacency List for a Digraph
For each v in V, L(v) = list of w such that (v, w) is in E a b A B C D E F B B D C A C F D E D E E Space = a |V| + b |E|


Download ppt "CC 215 Data Structures Graph Terminology"

Similar presentations


Ads by Google