Pertemuan 21 BASIC SEARCH AND TRAVERSAL Matakuliah : T0034 / Perancangan & Analisis Algoritma Tahun : 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 : 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 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 D F C G B E Bina Nusantara
TREE DFS (2) A D F C G B E A Stack Bina Nusantara
TREE DFS (3) A D F C G B E A Stack Bina Nusantara
TREE DFS (4) A D F C G B E E B A Stack Bina Nusantara
TREE DFS (5) A D F C G B E E A B Stack Bina Nusantara
TREE DFS (6) A D F C G B E E D C A B Stack Bina Nusantara
TREE DFS (7) A D F C G B E E D A B C Stack Bina Nusantara
TREE DFS (8) A D F C G B E E A B C D Stack Bina Nusantara
TREE DFS (9) A D F C G B E A B C D E Stack Bina Nusantara
TREE DFS (10) A D F C G B E G F A B C D E Stack Bina Nusantara
TREE DFS (11) A D F C G B E G A B C D E F Stack Bina Nusantara
TREE DFS (12) A D F C G B E A B C D E F G Stack Bina Nusantara
IMPLEMENTASI TREE BFS Langkah-langkah : 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 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 D F C G B E Bina Nusantara
TREE BFS (2) A D F C G B E A Queue Bina Nusantara
TREE BFS (3) A D F C G B E Queue A Bina Nusantara
TREE BFS (4) A D F C G B E B E Queue A Bina Nusantara
TREE BFS (5) A D F C G B E E Queue A B Bina Nusantara
TREE BFS (6) A D F C G B E E C D Queue A B Bina Nusantara
TREE BFS (7) A D F C G B E C D Queue A B E Bina Nusantara
TREE BFS (8) A D F C G B E C D F G Queue A B E Bina Nusantara
TREE BFS (9) A D F C G B E D F G Queue A B E C Bina Nusantara
TREE BFS (10) A D F C G B E F G Queue A B E C D Bina Nusantara
TREE BFS (11) A D F C G B E G Queue A B E C D F Bina Nusantara
TREE BFS (12) A D F C G B E Queue A B E C D F G Bina Nusantara
IMPLEMENTASI GRAPH DFS Langkah-langkah : 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 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 : Nyatakan graph dengan Adjacency List Set semua node status 1 Masukkan node awal ke queue, set status 2 Ambil queue terdepan, set status 3 Masukkan node yang adjacent dengan yang baru diambil yang status 1 ke queue, set status 2 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
Lakukan implementasi DFS dan BFS pada graph berikut : LATIHAN Lakukan implementasi DFS dan BFS pada graph berikut : Bina Nusantara
Apa yang sudah dipahami? Apa yang akan dibahas selanjutnya? REVIEW Apa yang sudah dipahami? Apa yang akan dibahas selanjutnya? Bina Nusantara