Sabtu, 26 Juni 2010

STACK & QUEUE

Stack (tumpukan) dapat dibayangkan seperti tumpukan piring atau kardus mie instant, dimana hanya data terakhir yang dapat diperoleh (diakses) dengan satu langkah. Data-data yang terletak di bawahnya hanya bisa diambil (pop) setelah data data yang berada di atasnya diambil (dikeluarkan). Sehingga stack bisa disebut dengan penyimpanan yang menggunakan mekanisme LIFO (Last In First Out).

stack

Misalnya – lihat gambar di atas, kita dengan method push(49) bisa memasukkan data integer 49 ke dalam stack. Sehingga sekarang 49 sudah masuk ke stack. Seandainya sekarang kita ingin mengeluarkan data integer 27, maka data 49 harus dikeluarkan terlebih dahulu. Jika 49 sudah keluar, baru kita bisa mengeluarkan 27. Demikian seterusnya.

Istilah-istilah yang sering dipakai dalam stack:

  • push: memasukkan data baru dalam stack
  • pop: mengeluarkan data dari stack
  • top: data yang letaknya paling atas pada sebuah stack
--------------------------------------------------------------------------------

Queue (antrian) adalah struktur data dimana data yang pertama kali dimasukkan adalah data yang pertama kali bisa dihapus. Atau bisa juga disebut dengan struktur data yang menggunakan mekanisme FIFO (First In First Out).

queue

Queue dalam kehidupan sehari-hari seperti antrian pada penjualan tiket kereta api, dimana orang yang pertama datang adalah orang yang pertama kali dilayani untuk membeli tiket. Jika ada orang baru yang datang akan membali tiket, maka posisinya berada pada urutan paling belakang dalam antrian tersebut. Orang yang berada pada posisi terakhir dalam antrian adalah yang terakhir kali dapat dilayani dan memperoleh tiket kereta api (kalau kurang beruntung, maka akan kehabisan tiket). Contoh lain adalah nasabah yang antri di teller bank, paket data yang menunggu untuk ditransmisikan lewat internet, antrian printer dimana terdapat antrian print job yang menunggu giliran untuk menggunakan printer, dsb.

Istilah-istilah yang digunakan dalam queue (antrian)
Memasukkan data (insert) disebut juga dengan put, add, atau enqueue. Menghapus data (remove) biasa disebut dengan istilah delete, get, atau dequeue. Bagian belakang queue, dimana data bisa dimasukkan disebut dengan back, tail (ekor), atau end (akhir). Sedangkan bagian depan (front) queue dimana data bisa dihapus juga biasa disebut dengan istilah kepala (head).