Thursday, February 28, 2013

STACK and QUEUE

Pengertian
Tumpukan dapat diartikan sebagai suatu kumpulan data yang seolah-olah terlihat seperti ada data yang diletakkan di atas data yang lain seperti pada gambar 01. Saat kita ingin mengambil data A, maka data-data yang berada di atasnya haruslah lebih dulu dikeluarkan (di-POP ). Hal ini membuat tumpukan / stack memiliki ciri-ciri Last In First Out ( LIFO ) yang berarti data yang masuk terakhir akan keluar pertama.
Sedangkan queue / antrian hampir mirip dengan stack, tapi hanya saja, data yang masuk pertama kali akan keluar pertama kali dari Queue.
 

 Hal-hal yang perlu dilakukan untuk membuat Stack yaitu

   1.  Menambah (push)
   2.  Mengambil (pop)
   3.  megecek apakah stack penuh (isFull)
   4.  mengecek apakah stack kosong (isEmpty)
   5.  membersihkan stack (clear).
  6.  Mencetak isi stack (print)

Hal-hal yang perlu dilakukan untuk membuat queue yaitu 

1.      Mendefinisikan queue dengan menggunakan struct dimana kita perlu menggunakan variable head dan      tail  sebagai penanda pada stack.
2.      Mendefinisikan max untuk maksimum isi queue
3.      Membuat variable array sebagai implementasi queue
queue antri;
4.      Mendeklarasikan operasi-operasi/fungsi yang dapat dilakukan queue.
a.       Enqueue (menginputkan data pada queue)
b.      Dequeue (mengambil data dari queue)
c.       isEmpty (mengecek apakah antrian kosong)
d.      isFull (mengecek apakah antrian penuh)
e.       clear (membersihkan seluruh isi antrian)
f.       Print(mencetak seluruh isi antrian)
 

Operasi Pada Stack Dan Queue
Dalam penyajian stack dan queue, ada 2 proses yang terjadi, yaitu pemasukan data (PUSH) dan pengeluaran data (POP). Seperti yang sudah dijelaskan bahwa array itu memiliki jumlah maksimal, maka pada proses PUSH, perlu pengecekan apakah data yang di-PUSH di stack / queue melebihi jumlah maksimal array atau tidak.

Penyajian Stack Dan Queue
Stack dan/atau Queue dapat disajikan baik dengan Array maupun dengan struct. Pada
Array, stack ataupun queue yang disajikan bersifat statis. Ini disebabkan karena jumlah
maksimal data pada array sudah ditentukan sejak awal.
 
Contoh deklarasi stack dengan struct :
           Struct stack
           {
             char data;
             stack*next;
           };





No comments:

Post a Comment