Document 9650418

Download Report

Transcript Document 9650418

Matakuliah
Tahun
: T0034 / Perancangan & Analisis Algoritma
: 2008
Pertemuan 21
BASIC SEARCH AND TRAVERSAL
REVIEW TREE TRAVERSAL
• Adalah proses mengunjungi setiap node dalam tree
• Pre-order Traversal
– parent–left–right
• Level-order Traversal
– parent–left–right (per level / kedalaman)
• In-order Traversal
– left–parent–right (teknik ini hanya berlaku bagi Binary Tree)
• Post-order Traversal
– left–right–parent
[buku utama, bab 9.2]
Bina Nusantara
PRE-ORDER TRAVERSAL
[buku utama, ilustrasi 9.6]
Bina Nusantara
LEVEL-ORDER TRAVERSAL
[buku utama, ilustrasi 9.7]
Bina Nusantara
IN-ORDER TRAVERSAL
[buku utama, ilustrasi 9.8]
Bina Nusantara
POST-ORDER TRAVERSAL
[buku utama, ilustrasi 9.9]
Bina Nusantara
IMPLEMENTASI TREE DFS
• Langkah-langkah :
1.
2.
3.
4.
Mula-mula beri status 1 (warna putih) ke semua node
Masukkan root node ke stack, set status 2 (warna orange)
Ambil isi stack yang paling atas, set status 3 (warna hijau)
Masukkan left child dan right child dari node yang baru saja diambil
dari stack, set status 2
5. Ulangi langkah 3 sampai stack kosong atau data yang dicari ketemu
• Langkah-langkah dalam istilah yang lebih ”teknis” :
–
–
–
–
PUSH root node
POP node X dari stack
PUSH semua child node X yang baru saja diambil
Kembali ke step 2
[buku utama, bab 9.2.1]
Bina Nusantara
TREE DFS (1)
A
B
C
Bina Nusantara
E
D
F
G
TREE DFS (2)
A
B
C
E
D
F
G
A
Stack
Bina Nusantara
TREE DFS (3)
A
B
C
E
D
F
G
A
Stack
Bina Nusantara
TREE DFS (4)
A
B
E
B
C
D
F
G
E
Stack
Bina Nusantara
A
TREE DFS (5)
A
B
C
E
D
F
G
E
Stack
Bina Nusantara
A
B
TREE DFS (6)
A
B
E
C
D
C
D
F
G
E
Stack
Bina Nusantara
A
B
TREE DFS (7)
A
B
E
D
C
D
F
G
E
Stack
Bina Nusantara
A
B
C
TREE DFS (8)
A
B
C
E
D
F
G
E
Stack
Bina Nusantara
A
B
C
D
TREE DFS (9)
A
B
C
E
D
F
G
A
Stack
Bina Nusantara
B
C
D
E
TREE DFS (10)
A
B
E
F
C
D
F
G
G
Stack
Bina Nusantara
A
B
C
D
E
TREE DFS (11)
A
B
C
E
D
F
G
G
Stack
Bina Nusantara
A
B
C
D
E
F
TREE DFS (12)
A
B
C
E
D
F
G
A
Stack
Bina Nusantara
B
C
D
E
F
G
IMPLEMENTASI TREE BFS
•
Langkah-langkah :
1.
2.
3.
4.
Mula-mula beri status 1 (warna putih) ke semua node
Masukkan root node ke queue, set status 2 (warna orange)
Ambil isi queue yang paling depan (paling bawah), set status 3 (warna hijau)
Masukkan left child dan right child dari node yang baru saja diambil dari
queue, set status 2
5. Ulangi langkah 3 sampai queue kosong atau data yang dicari ketemu
•
Langkah-langkah dalam istilah yang lebih ”teknis” :
–
–
–
–
PUSH root node
POP node X dari queue
PUSH semua child node X yang baru saja diambil
Kembali ke step 2
[buku utama, bab 9.2.2]
Bina Nusantara
TREE BFS (1)
A
B
C
Bina Nusantara
E
D
F
G
TREE BFS (2)
A
Queue
B
C
Bina Nusantara
E
D
F
G
A
TREE BFS (3)
A
Queue
B
C
Bina Nusantara
E
D
F
G
A
TREE BFS (4)
A
Queue
B
E
E
C
Bina Nusantara
D
F
G
B
A
TREE BFS (5)
A
Queue
B
C
Bina Nusantara
E
D
F
G
E
A
B
TREE BFS (6)
A
Queue
B
E
D
C
C
Bina Nusantara
D
F
G
E
A
B
TREE BFS (7)
A
Queue
B
E
D
C
Bina Nusantara
D
F
G
C
A
B
E
TREE BFS (8)
A
G
B
E
Queue
F
D
C
Bina Nusantara
D
F
G
C
A
B
E
TREE BFS (9)
A
Queue
B
E
G
F
C
Bina Nusantara
D
F
G
D
A
B
E
C
TREE BFS (10)
A
Queue
B
E
G
C
Bina Nusantara
D
F
G
F
A
B
E
C
D
TREE BFS (11)
A
Queue
B
C
Bina Nusantara
E
D
F
G
G
A
B
E
C
D
F
TREE BFS (12)
A
Queue
B
C
Bina Nusantara
E
D
F
G
A
B
E
C
D
F
G
IMPLEMENTASI GRAPH DFS
• Langkah-langkah :
1.
2.
3.
4.
5.
Nyatakan graph dengan Adjacency List
Set semua node status 1
Masukkan node awal ke stack, set status 2
Ambil top stack, set status 3
Masukkan node yang adjacent dengan yang baru diambil
yang status 1 ke stack, set status 2
6. Ulangi langkah-langkah di atas hingga stack kosong atau
data yang dicari ditemukan
[buku utama, bab 9.2.3]
Bina Nusantara
HASIL DFS
[buku utama, ilustrasi 9.13]
Bina Nusantara
IMPLEMENTASI GRAPH BFS
• Langkah-langkah :
1. Nyatakan graph dengan Adjacency List
2. Set semua node status 1
3. Masukkan node awal ke queue, set status 2
4. Ambil queue terdepan, set status 3
5. Masukkan node yang adjacent dengan yang baru diambil
yang status 1 ke queue, set status 2
6. Ulangi langkah-langkah di atas hingga queue kosong
atau data yang dicari ditemukan
[buku utama, bab 9.2.4]
Bina Nusantara
HASIL BFS
[buku utama, ilustrasi 9.14]
Bina Nusantara
LATIHAN
• Lakukan implementasi DFS dan BFS pada graph
berikut :
Bina Nusantara
REVIEW
• Apa yang sudah dipahami?
• Apa yang akan dibahas selanjutnya?
Bina Nusantara