Stack dan Queue
Pengertian Stack Dan Queue
STACK
Pengertian Stack atau Tumpukan adalah suatu stuktur data yang penting
dalam pemrograman yang mempunyai sifat LIFO (Last In First Out), Benda yang
terakhir masuk ke dalam stack akan menjadi benda pertama yang dikeluarkan dari
stack.
Stack
(Tumpukan) adalah list linier yang dikenali elemen puncaknya (TOP) dan Aturan
penyisipan dan penghapusan elemennya tertentu. Penyisipan selalu dilakukan “di
atas“ TOP dan Penghapusan selalu dilakukan pada TOP
Operasi-operasi stack
Push : digunakan untuk menambah item pada stack pada tumpukan paling
atas
Pop
: digunakan untuk mengambil item pada stack pada tumpukan
paling atas
Clear
: digunakan untuk mengosongkan stack
IsEmpty
: fungsi yang digunakan untuk mengecek apakah stack sudah kosong
IsFull
: fungsi yang digunakan untuk mengecek apakah stack sudah
penuh
macam - macam
stack
- Stack dengan Array
Sesuai
dengan sifat stack, pengambilan atau penghapusan elemen dalam stack harus
dimulai dari elemen teratas.
- Double Stack dengan Array
Metode
ini adalah teknik khusus yang dikembangkan untuk menghemat pemakaian memori
dalam pembuatan dua stack dengan array. Intinya adalah penggunaan hanya sebuah
array untuk menampung dua stack.
QUEUE
Queue pada Struktur Data atau antrian adalah sekumpulan
data yang mana penambahan elemen hanya bisa dilakukan pada suatu ujung disebut
dengan sisi belakang(rear), dan penghapusan(pengambilan elemen) dilakukan lewat
ujung lain (disebut dengan sisi depan atau front).
Queue
atau antrian prinsip yang digunakan adalah “Masuk Pertama Keluar Pertama” atau
FIFO (First In First Out).
Queue
atau antrian banyak kita jumpai dalam kehidupan sehari-hari, ex: antrian Mobil
diloket Tol, Antrian mahasiswa Mendaftar, dll. Contoh lain dalam bidang
komputer adalah pemakaian sistem komputer berbagi waktu(time-sharing computer
system) dimana ada sejumlah pemakai yang akan menggunakan sistem tersebut
secara serempak.
Pada
Queue atau antrian Terdapat satu buah pintu masuk di suatu ujung dan satu buah
pintu keluar di ujung satunya dimana membutuhkan variabel Head dan Tail (
depan/front, belakang/rear).
Karakteristik
Queue atau antrian :
1.
elemen antrian
2.
front (elemen terdepan antrian)
3.
tail (elemen terakhir)
4.
jumlah elemen pada antrian
5.
status antrian Operasi pada Queue atau antrian
Operasi-operasi
Queue :
1.
Create() Untuk menciptakan dan menginisialisasi Queue Dengan cara membuat Head
dan Tail = -1
2.
IsEmpty() Untuk memeriksa apakah Antrian sudah penuh atau belum Dengan cara
memeriksa nilai Tail, jika Tail = -1 maka empty Kita tidak memeriksa Head,
karena Head adalah tanda untuk kepala antrian (elemen pertama dalam antrian)
yang tidak akan berubah-ubah Pergerakan pada Antrian terjadi dengan penambahan
elemen Antrian kebelakang, yaitu menggunakan nilai Tail.
3.
IsFull Untuk mengecek apakah Antrian sudah penuh atau belum Dengan cara
mengecek nilai Tail, jika
Tail
>= MAX-1 (karena MAX-1 adalah batas elemen array pada C) berarti sudah
penuh
4.
Enqueue Untuk menambahkan elemen ke dalam Antrian, penambahan elemen selalu
ditambahkan di elemen paling belakang Penambahan elemen selalu menggerakan variabel
Tail dengan cara increment counter Tail terlebih dahulu
5.
Dequeue() Digunakan untuk menghapus elemen terdepan/pertama (head) dari Antrian
Dengan cara menggeser semua elemen antrian kedepan dan mengurangi Tail dgn 1
Penggeseran dilakukan dengan menggunakan looping.
6.
Clear() Untuk menghapus elemen-elemen Antrian dengan cara membuat Tail dan Head
= -1 Penghapusan elemen-elemen Antrian sebenarnya tidak menghapus arraynya,
namun hanya mengeset indeks pengaksesan-nya ke nilai -1 sehingga elemen-elemen
Antrian tidak lagi terbaca
7.
Tampil() Untuk menampilkan nilai-nilai elemen Antrian Menggunakan looping dari
head s/d tail
Komentar
Posting Komentar