Download presentation
Presentation is loading. Please wait.
Published byEric Price Modified over 9 years ago
1
Intro to Graphs CSIT 402 Data Structures II
2
CSIT 402 Graph Introduction2 Graphs Graphs are composed of ›Nodes (vertices) Can be labeled ›Edges (arcs) Directed (arrowhead) Undirected Can be labeled node edge
3
CSIT 402 Graph Introduction3 Graphs: Data Structure Progression Consider previous data structures Linked List: Nodes with 1 incoming edge and 1 outgoing edge Binary Trees/Heaps: Nodes with 1 incoming edge and 2 outgoing edges General Trees: Nodes with 1 incoming edge and any number of outgoing edges Idea: All of the above are graphs More examples on next seven slides… 10 96 99 94 97 Value Next node Value Next node
4
CSIT 402 Graph Introduction4 Course Prerequisites 321 143 142 322 326 341 370 378 401 421 Nodes = courses Directed edge = prerequisite 373 410 413 415 417 461
5
CSIT 402 Graph Introduction5 Representing a Maze S Nodes = locations Edge = paths between locations S E B E Directed or Undirected?
6
CSIT 402 Graph Introduction6 Representing Electrical Circuits Nodes = battery, switch, resistor, etc. Edges = connections Battery Switch Resistor Directed or Undirected?
7
CSIT 402 Graph Introduction7 Program statements x1=q+y*z x2=y*z-q Naive: common subexpression eliminated: yz * - q + q * x1x2 yz - q + q* x1x2 Nodes = symbols/operators Edges = relationships y*z calculated twice Directed or Undirected?
8
CSIT 402 Graph Introduction8 Precedence S 1 a=0; S 2 b=1; S 3 c=a+1 S 4 d=b+a; S 5 e=d+1; S 6 e=c+d; 3 1 2 6 5 4 Which statements must execute before S 6 ? S 1, S 2, S 3, S 4 Nodes = statements Edges = precedence requirements Directed or Undirected? Values
9
CSIT 402 Graph Introduction9 Information Transmission in a Computer Network Seattle L.A. Tokyo Seoul Nodes = computers Edges = transmission rates 128 140 181 30 16 56 Directed or Undirected? Values
10
CSIT 402 Graph Introduction10 Traffic Flow on Highways Nodes = cities Edges = # vehicles on connecting highway UW Directed or Undirected?
11
CSIT 402 Graph Introduction11 Formal Definition A graph G is a tuple (V, E) where ›V is a set of vertices or nodes ›E is a set of edges An Edge e is a pair (v 1,v 2 ), where v i ε V ›Example: V = {A, B, C, D, E, F} E = {(A,B), (A,D), (B,C), (C,D), (C,E), (D,E)} A B C E D F
12
If the order of edge pairs (v i, v j ) is important (e.g prerequisites), the graph is directed (also called a digraph): (v i, v j ) (v j, v i ), i j If the order of edge pairs (v i, v j ) is unimportant (e.g. maze), the graph is called an undirected graph (never called an undigraph): In this case, (v i, v j ) = (v j, v i ), i j CSIT 402 Graph Introduction12 Directed vs Undirected Graphs vivi vjvj vivi vjvj
13
CSIT 402 Graph Introduction13 Undirected Graph 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 (in contact) 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) A B C E D F Deg(D) = 3 Deg(F) = 0 (A,B) is incident to A and to B Self-loop B is adjacent to C and C is adjacent to B
14
CSIT 402 Graph Introduction14 Directed Graph 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
15
CSIT 402 Graph Introduction15 Directed Graph Terminology A B C E D F In-degree = 2 Out-degree = 1 In-degree = 0 Out-degree = 0 B adjacent to C and C adjacent from B
16
CSIT 402 Graph Introduction16 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.
17
CSIT 402 Graph Introduction17 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 Graph Representations
18
CSIT 402 Graph Introduction18 A B C D E F 0 1 0 1 0 0 1 0 1 0 0 0 0 1 0 1 1 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 M(v, w) = 1 if (v, w) is in E 0 otherwise ABCDEFABCDEF Space = |V| 2 A B C E D F Adjacency Matrix
19
CSIT 402 Graph Introduction19 A B C D E F 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 ABCDEFABCDEF Space = |V| 2 M(v, w) = 1 if (v, w) is in E 0 otherwise A B C E D F Adjacency Matrix for a Digraph
20
CSIT 402 Graph Introduction20 B D BD C A C E D E A C ABCDEFABCDEF A B C E D F Space = |V| + 2 |E| For each v in V, L(v) = list of w such that (v, w) is in E a b Adjacency List list of neighbors
21
CSIT 402 Graph Introduction21 B D E D C a b ABCDEFABCDEF E A B C E D F For each v in V, L(v) = list of w such that (v, w) is in E Space = |V| + |E| Adjacency List for a Digraph
22
CSIT 402 Directed Graphs 22 Paths and Cycles Given a directed graph G = (V,E), a path is a sequence of vertices v 1,v 2, …,v k such that: ›(v i,v i+1 ) in E for 1 < i < k path length = number of edges in the path path cost = sum of costs of each edge (if edges have costs) A graph contains a cycle if, there exists a path v 1,v 2, …,v k, k > 1 such that v k = v 1 G is acyclic if it has no cycles.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.