==============================================
Stack and Implementation
- Stack adalah Tumpukan suatu data
- Stack dibagi menjadi dua macam yakni :
1. LIFO(Last In First Out) pengertiannya yakni data yang terakhir kali masuk akan keluar pertama kali juga contohnya seperti dalam tumpukan piring - piring kotor yang akan di cuci. Piring pertama yang akan masuk rak adalah piring yang terakhir kali masuk yakni yang dicuci pertama kali
2. FILO(First In Last Out) pengertiannya yakni data yang pertama kali masuk akan keluar terakhir contohnya sama seperti diatas hanya saja kebalikannya. Piring yang berada di paling bawah akan masuk rak paling terakhir
- Terdapat dua macam variable yang sering digunakan yakni :
1. Max , variable untuk menunjukkan jumlah data pada stack
2. Top , variable untuk menunjukkan data yang ada di paling atas dalam stack
- Apabila Top = NULL maka data stack kosong sedangkan apabila Top = Max - 1 maka data stack penuh.
- Beberapa function dalam stack :
1. is_empty(); -> untuk mengecek apakah stack kosong
2. is_full(); -> untuk mengecek apakah stack penuh
3. top(); -> untuk kembali ke index top
4. push(); -> untuk menambah data pada stack
5. pop(); -> untuk menghapus data pada stack
- Dalam stack, apabila terjadi penambahan data maka Top akan naik sedangkan kebalikannya apabila terjadi pengurangan data maka Top akan turun.
Queue and Implementation
- Queue adalah Antrian suatu data
- Queue dibagi menjadi dua macam yakni :
1. FIFO (First In First Out) pengertiannya yakni data yang pertama kali masuk akan keluar pertama kali juga. Contohnya seperti pada saat mengantri untuk membeli tike nonton bioskop. Pengantri pertama akan keluar dari barisan apabila sudah membeli tiket.
2. LILO (Last In Last Out) pengertiannya yakni data yang terakhir kali masuk akan keluar terakhir kali juga. Contohnya sama seperti diatas hanya kebalikan saja.
- Priority Queue maksudnya dalam suatu data terdapat 1 data yg dikhususkan / didahulukan
- Circular Queue maksudnya queue yang berbentuk seperti lingkaran (melingkari data - datanya)
Dept First Search
- DFS merupakan pencarian secara preorder, mengunjungi anak suatu simpul sebelum simpul tetangganya.
- Berikut gambar algoritma dari DFS :
- Dari gambar, dapat dilihat bahwa dengan algoritma DFS, setiap anak simpul pertama yang bertetangga dengan simpul akar dikunjungi sampai tingkat terdalamnya lebih dahulu lalu seluruh simpul pada subtree tersebut, sebelum simpul lain yang juga bertetangga dengan simpul akar.
- Keuntungan yang didapat apabila menggunakan metode DFS yakni :
1. Membutuhkan memori yang relative kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan.
2. Secara kebetulan, metode depth-first search akan menemukan solusi tanpa harus menguji lebih banyak lagi.
- Kekurangan dari metode DFS yakni :
1. Memungkinkan tidak ditemukannya tujuan yang diharapakan
2. Hanya akan menemukan 1 solusi pada setiap pencarian
==============================================
Nama : Johanes Arnold
NIM : 1701302242