download

Matakuliah
Tahun
Versi
: T0026/Struktur Data
: 2005
: 1/1
Pertemuan 22
Graph Operation
1
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :
• Mahasiswa dapat menghasilkan program
modular untuk mengimplementasikan
graph operation dan spanning tree
2
Outline Materi
•
•
•
•
•
•
•
Pengertian graph operation
Graph traversal
Depth First Search
Breadth First Search
Contoh operasi DFS dan DFS
Spanning Tree
Contoh konstruksi Spanning Tree
3
Graph Traversal
• Depth First Search (DFS)
Algoritma akan memanfaatkan stack
• Bread First Search (BFS)
Algoritma akan memanfaatkan queue
Pembahasan DFS dan BFS akan
menggunakan representasi Adjacency List
Pada saat mengunjungi sebuah node, nama
node akan dicetak
4
Graph – DEPTH FIRST SEARCH
Algoritma DFS :
For (all v in G) visited[v] = FALSE;
void dfs (int v) {
node_pointer w;
visited[v] = TRUE;
printf (“%d”, v);
for (w = graph[v]; w; w=w->link)
if (!visited[w->vertex])
dfs(w->vertex);
}
5
Graph – BREADTH FIRST SEARCH (BFS)
Algoritma BFS:
void BFS(G){
for (all v in G) {
if (visited[v] = FALSE){
EnQueue(v,Queue);
do {
DeQueue(v, Queue);
visited[v] = TRUE;
Visit(v);
for (all w adjacent to v)
if (visited(w)= FALSE)
EnQueue(w,Queue);
} while (!Empty(Queue));
}
}
}
6
Graph – Contoh(1)
Adjacency List : perhatikan urutan
node pd edge list sesuai dengan
urutan head node list
Vo
V1
0
1
2
1
0
3
4
2
0
5
6
3
1
7
4
1
7
5
2
7
6
2
7
7
3
4
V3
V2
V4
V5
V6
V7
5
3
7
Graph – Contoh(1) - DEPTH FIRST SEARCH (DFS)
v
vo
Stack
Empty
Status visited
vo
Printout
vo
v1
v3
v7
v2
v2 v4
v2 v4
v1
v3
v7
v1
v3
v7
v4
v5
v2
v6
v2 v4 v5
v2 v4
v2 v4 v7
v2 v4 v7
v4
v5
v2
v6
v4
v5
v2
v6
-
v2 v4
-
-
v2
-
-
empty
-
8
Graph – Contoh(1) – Hasil DFS dan BFS
Hasil DFS
Hasil BFS
Vo
Vo
V1
V3
V2
V4
V5
V7
V1
V6
V3
V2
V4
V5
V6
V7
9
Graph – BREADTH FIRST SEARCH (BFS)
v
w
Printout
Status visited
vo
vo
vo
v1
v1
v1
v1
v2
v1 v2
v2
v2
v0
v2
v3
v2 v3
v3
v3
v4
v2 v3 v4
v4
v4
vo
v3 v4
v5
v3 v4 v5
v5
v5
v6
v3 v4 v5 v6
v6
v6
v1
v4 v5 v6
v7
v4 v5 v6 v7
v7
v7
v1
v5 v6 v7
vo
v1
v2
v3
v4
Queue
10
Graph – BREADTH FIRST SEARCH (BFS)
v
w
v4
v1
v5 v6 v7
v7
v5 v6 v7
v2
v6 v7
v7
v6 v7
v2
v7
v7
v7
v3
empty
v4
empty
v5
empty
v6
empty
v5
v6
v7
Queue
Printout
Status visited
11
Graph – Contoh 2
A
B
F
C
E
D
A
B
C
D
B
A
C
E
C
A
B
E
D
A
E
E
B
C
F
B
E
D
F
F
12
Graph – Contoh 2 - DFS
verteks Stack
A
B
C
C
CE
E
D
F
CE
CEF
CE
Status visited
A
B
C
Printout
A
B
C
E
D
F
E
D
F
13
Graph – Contoh(2) - BFS
v
w
Printout
Status visited
A
A
A
B
B
B
B
C
BC
C
C
D
BCD
D
D
A
B
Queue
CD
E
CDE
E
E
F
CDEF
F
F
F
CDE
-
-
E
CD
-
-
D
C
-
-
C
empty
-
14
Graph – Contoh(2) – Hasil DFS dan BFS
Hasil DFS
A
Hasil BFS
B
C
D
F
E
A
B
C
F
E
D
15
Graph – Contoh 3
A
B
C
F
B
C
D
B
A
C
E
C
A
B
F
D
A
F
G
H
E
B
F
F
B
C
D
E
G
D
F
H
D
G
H
D
A
E
F
G
16
Graph – Contoh(3) - DEPTH FIRST SEARCH
(DFS)
verteks Stack
Status visited
Printout
A
empty
A
A
B
C
B
B
C
CE
C
C
F
CE
F
F
D
CEE
D
D
G
CEEH
G
G
H
CEE
H
H
E
CE
E
E
E
C
-
-
C
empty
-
17
Graph – Contoh(3) - BREADTH FIRST SEARCH
(BFS)
v
w
Printout
Status visited
A
A
A
B
B
B
B
C
BC
C
C
D
BCD
D
D
A
B
Queue
CD
E
CDE
E
E
F
CDEF
F
F
C
DEF
D
EF
G
EF
G
G
H
EF
H
H
18
Graph – Contoh(3) - DEPTH FIRST SEARCH (DFS)
Hasil DFS
A
Hasil BFS
B
C
D
E
F
G
H
A
B
C
D
E
F
G
H
19
20