Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
CPCS204-15-Graphdatastructureinjava.pptx
1. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
1
O my Lord! Expand for me my chest [with
assurance] and ease for me my task and untie the
knot from my tongue that they may understand
my speech. (Quran 20 : 25-28)
2. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Graph
2
Introduction
3. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Graph - Introduction
• Arrays
• Linked List
• Stacks
• Queues
• Tree
• Graph
3
4. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Graph - Introduction
• Definition
oA graph is a non-linear and non-hierarchical
data structure that organizes data elements,
called vertices, by connecting them with links,
called edges
4
edges (weight)
node or vertex
5. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Graph - Introduction
• A graph G = (V,E) is composed of:
oV: set of vertices (nodes)
oE: set of edges (arcs) connecting the vertices V
• An edge e = (u,v) is a pair of vertices
5
V= {a,b,c,d,e}
E=
{(a,b),(a,c),(a,d),(b,e),(c,d),(c,e),(d,e)}
6. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Graph Examples - nasair flight network
6
7. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Graph Examples – Computer Network
7
Comcast
Regional Network
Intel UNT
Charter
8. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Graph - Application
• Traveling Salesman
• Find the shortest path that connects all
cities without a loop.
8
Start
9. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Graph - Types
• Undirected Graph
oEdge has no
orientation
9
• Directed Graph
oEdge has oriented
vertex
10. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Graph
10
Terminologies
11. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Terminologies - Sub graph
• Subset of vertices and edges
11
B
C
D
A
B
C
A
B
C
A
C
B
A
B
C A
12. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Terminologies –Path
• A path is a walk from one vertex to any other
vertex.
• The vertices traversed to reach to a vertex
from an other
oABCD is a path
oADC
oABDA
oBCDA
oABDCBA
oABCA
12
B
C
D
A
path
13. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Terminologies – Simple Path
• A simple path is a path such that all vertices
are distinct
oABCD is a simple path
oADC
oABDA
oBCDA
oABDCBA
oABCA
13
B
C
D
A
14. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Terminologies – Cycle
• A cycle is a path that starts and ends at the
same point. For undirected graph, the
edges are distinct.
oCBDC is a Cycle
oABCD
oABDA
oBCDB
oABDCBA
14
B
C
D
A
15. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Graph – Connected / Unconnected
• Connected Graph
oAll vertices are
connected
15
• Unconnected Graph
oOne or more
vertices are not
linked
16. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Terminologies – DAG
• Directed Acyclic Graph (DAG) : directed
graph without cycle
16
17. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Terminologies – Weighted Graph
• Weighted graph: a graph with numbers
assigned to its edges
ocost, distance, travel time, etc.
17
0
1
3
2
20
10
1
5
4
18. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Terminologies – Complete Graph
• There is a direct edge between every two
vertices
• Total edges E = N(N-1)/2
18
0
1
3
2
19. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Terminologies – Sparse Graph
• There is a very small number of edges in
the graph
• Total edges E = N-1
19
20. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Graph
20
Representation
21. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Graph - Representation
• Adjacency Matrix
• Adjacency List
21
22. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Representation – Adjacency Matrix
• Assume N nodes in graph
• Use Matrix A[0…N-1][0…N-1]
oif vertex i and vertex j are adjacent in graph,
A[i][j] = 1,
o otherwise A[i][j] = 0
oif vertex i has a loop, A[i][i] = 1
oif vertex i has no loop, A[i][i] = 0
22
23. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Representation – Adjacency Matrix
23
0
1
3
2
A[i][j] 0 1 2 3
0 0 1 1 0
1 1 0 1 1
2 1 1 0 1
3 0 1 1 0
So, Matrix A =
0 1 1 0
1 0 1 1
1 1 0 1
0 1 1 0
Undirected Graph
24. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
A[i][j] 0 1 2 3
0 0 1 1 1
1 0 0 0 1
2 0 0 0 1
3 0 0 0 0
0
1
3
2
So, Matrix A =
0 1 1 1
0 0 0 1
0 0 0 1
0 0 0 0
Representation – Adjacency Matrix
Directed Graph
25. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
A[i][j] 0 1 2 3
0 0 20 10 1
1 20 0 0 5
2 10 0 0 4
3 1 5 4 0
0
1
3
2
10
20
1
4
5
So, Matrix A =
0 20 10 1
20 0 0 5
10 0 0 4
1 5 4 0
Representation – Adjacency Matrix
Weighted Graph
26. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Representation – Adjacency Matrix
• Undirected graph
oadjacency matrix is symmetric
oA[i][j]=A[j][i]
• Directed graph
oadjacency matrix may not be symmetric
oA[i][j]A[j][i]
26
A[i][j] 0 1 2 3
0 0 1 1 1
1 0 0 0 1
2 0 0 0 1
3 0 0 0 0
A[i][j] 0 1 2 3
0 0 1 1 0
1 1 0 1 1
2 1 1 0 1
3 0 1 1 0
27. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Representation – Adjacency List
• An array of lists
• The ith element of the array is a list of
vertices that connect to vertex i
27
0
1
3
2
0
1
2
3
1 2 3
3
3
Directed Graph
28. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Representation – Adjacency List
• An array of lists
• The ith element of the array is a list of
vertices that connect to vertex i
28 Undirected Graph
0
1
3
2
0
1
2
3
1 2 3
0 3
0 3
0 1 2
29. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Representation – Adjacency List
• Extend each node with an addition field:
weight
29 Weighted Graph
0
1
3
2
20 10
1
5
4
0
1
2
3
1 10 2 20 3 1
0 10 3 4
0 20 3 5
0 1 1 4 2 5
30. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Representation – Comparisons
30
Cost
Adjacency
Matrix
Adjacency
List
Given two vertices u and v:
find out whether u and v are
adjacent
O(1)
degree of
node
O(N)
Given a vertex u:
enumerate all neighbors of u
O(N)
degree of
node
O(N)
For all vertices:
enumerate all neighbors of
each vertex
O(N2)
Summation
s of all node
degree
O(E)
31. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Graph
31
Traversal
32. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Graph - Traversal
• Depth First Search (DFS) Traversal
• Breadth First Search (BFS) Traversal
32
33. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
Traversal - DFS
• Probing List is implemented as stack (LIFO)
• Example
oA’s neighbor: B, C, E
oB’s neighbor: A, C, F
oC’s neighbor: A, B, D
oD’s neighbor: E, C, F
oE’s neighbor: A, D
oF’s neighbor: B, D
oStart from vertex A
33
A
B C E
F D
34. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
• Initial State
oVisited Vertices { }
oProbing Vertices { A }
oUnvisited Vertices { A, B, C, D, E, F }
A
B
C E
F D
– A’s neighbor: B C E
– B’s neighbor: A C F
– C’s neighbor: A B D
– D’s neighbor: E C F
– E’s neighbor: A D
– F’s neighbor: B D
A
stack
Traversal - DFS
35. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
• Pick a vertex from stack, it is A, mark it as
visited
• Find A’s first unvisited neighbor, push it into
stack
o Visited Vertices { A }
o Probing vertices { A, B }
o Unvisited Vertices { B, C, D, E, F }
A
B
C E
F D
B
A
stack
A
Traversal - DFS
36. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
• Pick a vertex from stack, it is B, mark it as
visited
• Find B’s first unvisited neighbor, push it in
stack
o Visited Vertices { A, B }
o Probing Vertices { A, B, C }
o Unvisited Vertices { C, D, E, F }
C
B
A
stack
B
A
A
B
C E
F D
Traversal - DFS
37. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
• Pick a vertex from stack, it is C, mark it as
visited
• Find C’s first unvisited neighbor, push it in
stack
o Visited Vertices { A, B, C }
o Probing Vertices { A, B, C, D }
o Unvisited Vertices { D, E, F }
stack
A
B
C E
F D
D
C
B
A
C
B
A
Traversal - DFS
38. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
• Pick a vertex from stack, it is D, mark it as
visited
• Find D’s first unvisited neighbor, push it in
stack
o Visited Vertices { A, B, C, D }
o Probing Vertices { A, B, C, D, E }
o Unvisited Vertices { E, F }
stack
A
B
C E
F D
D
C
B
E
A
D
C
B
A
Traversal - DFS
39. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
• Pick a vertex from stack, it is E, mark it as
visited
• Find E’s first unvisited neighbor, no vertex
found, Pop E
o Visited Vertices { A, B, C, D, E }
o Probing Vertices { A, B, C, D }
o Unvisited Vertices { F }
stack
A
B
C E
F D
D
C
B
A
D
C
B
E
A
Traversal - DFS
40. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
• Pick a vertex from stack, it is D, mark it as
visited
• Find D’s first unvisited neighbor, push it in
stack
o Visited Vertices { A, B, C, D, E }
o Probing Vertices { A, B, C, D, F}
o Unvisited Vertices { F }
stack
A
B
C E
F D
D
C
B
F
A
D
C
B
A
Traversal - DFS
41. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
• Pick a vertex from stack, it is F, mark it as
visited
• Find F’s first unvisited neighbor, no vertex
found, Pop F
o Visited Vertices { A, B, C, D, E, F }
o Probing Vertices { A, B, C, D}
o Unvisited Vertices { } stack
A
B
C E
F D
D
C
B
A
D
C
B
F
A
Traversal - DFS
42. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
• Pick a vertex from stack, it is D, mark it as
visited
• Find D’s first unvisited neighbor, no vertex
found, Pop D
o Visited Vertices { A, B, C, D, E, F }
o Probing Vertices { A, B, C }
o Unvisited Vertices { } stack
A
B
C E
F D
C
B
A
D
C
B
A
Traversal - DFS
43. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
• Pick a vertex from stack, it is C, mark it as
visited
• Find C’s first unvisited neighbor, no vertex
found, Pop C
o Visited Vertices { A, B, C, D, E, F }
o Probing Vertices { A, B }
o Unvisited Vertices { } stack
A
B
C E
F D
B
A
C
B
A
Traversal - DFS
44. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
• Pick a vertex from stack, it is B, mark it as
visited
• Find B’s first unvisited neighbor, no vertex
found, Pop B
o Visited Vertices { A, B, C, D, E, F }
o Probing Vertices { A }
o Unvisited Vertices { } stack
A
B
C E
F D
A
B
A
Traversal - DFS
45. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
• Pick a vertex from stack, it is A, mark it as
visited
• Find A’s first unvisited neighbor, no vertex
found, Pop A
o Visited Vertices { A, B, C, D, E, F }
o Probing Vertices { }
o Unvisited Vertices { } stack
A
B
C E
F D
A
Traversal - DFS
46. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
• Now probing list is empty
• End of Depth First Traversal
oVisited Vertices { A, B, C, D, E, F }
oProbing Vertices { }
oUnvisited Vertices { }
stack
A
B
C E
F D
Traversal - DFS
47. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
• Probing List is implemented as queue
(FIFO)
• Example
oA’s neighbor: B C E
oB’s neighbor: A C F
oC’s neighbor: A B D
oD’s neighbor: E C F
oE’s neighbor: A D
oF’s neighbor: B D
oStart from vertex A
A
B
C E
F D
Traversal – Breadth First Search
48. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
• Initial State
oVisited Vertices { }
oProbing Vertices { A }
oUnvisited Vertices { A, B, C, D, E, F }
A
B
C E
F D
A
queue
Traversal – BFS
49. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
• Delete first vertex from queue, it is A, mark it as
visited
• Find A’s all unvisited neighbors, mark them as
visited, put them into queue
o Visited Vertices { A, B, C, E }
o Probing Vertices { B, C, E }
o Unvisited Vertices { D, F }
A
B
C E
F D
A
queue
B E
C
Traversal – BFS
50. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
• Delete first vertex from queue, it is B, mark it as
visited
• Find B’s all unvisited neighbors, mark them as
visited, put them into queue
o Visited Vertices { A, B, C, E, F }
o Probing Vertices { C, E, F }
o Unvisited Vertices { D }
A
B
C E
F D
B E
C
queue
C F
E
Traversal – BFS
51. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
• Delete first vertex from queue, it is C, mark it as
visited
• Find C’s all unvisited neighbors, mark them as
visited, put them into queue
o Visited Vertices { A, B, C, E, F, D }
o Probing Vertices { E, F, D }
o Unvisited Vertices { }
A
B
C E
F D
C F
E
queue
E D
F
Traversal – BFS
52. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
• Delete first vertex from queue, it is E, mark it as
visited
• Find E’s all unvisited neighbors, no vertex found
o Visited Vertices { A, B, C, E, F, D }
o Probing Vertices { F, D }
o Unvisited Vertices { }
A
B
C E
F D
E D
F
queue
F D
Traversal – BFS
53. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
• Delete first vertex from queue, it is F, mark it as
visited
• Find F’s all unvisited neighbors, no vertex found
o Visited Vertices { A, B, C, E, F, D }
o Probing Vertices { D }
o Unvisited Vertices { }
A
B
C E
F D
F D
queue
D
Traversal – BFS
54. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
• Delete first vertex from queue, it is D, mark it as
visited
• Find D’s all unvisited neighbors, no vertex found
o Visited Vertices { A, B, C, E, F, D }
o Probing Vertices { }
o Unvisited Vertices { }
A
B
C E
F D
D
queue
Traversal – BFS
55. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
• Now the queue is empty
• End of Breadth First Traversal
oVisited Vertices { A, B, C, E, F, D }
oProbing Vertices { }
oUnvisited Vertices { }
A
B
C E
F D
queue
Traversal – BFS
56. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
• Depth First Search(DFS)
oOrder of visited: A, B, C, D, E, F
• Breadth First Search (BFS)
oOrder of visited: A, B, C, E, F, D
A
B
C E
F D
Difference – DFS & BFS
57. Data Structures - I
“No Bonus” marks for this course anymore
C
P
C
S
2
0
4
Dr. Jonathan (Yahya) Cazalas Dr. Muhammad Umair Ramzan
57
Allah (Alone) is Sufficient for us,
and He is the Best Disposer of
affairs (for us).(Quran 3 : 173)