Struktur Data – Pengertian Stack
Secara bahasa, Stack berarti tumpukan. Jika dikaitkan dengan struktur data,
Stack berarti sekumpulan data yang organisasi atau strukturnya bersifat tumpukan
atau menyerupai tumpukan.
Secara ilustrasi, stack dapat digambarkan dengan gambar di samping.
“Top “ merupakan pintu untuk keluar masuknya elemen – elemen stack. A, B,
dan C merupakan suatu koleksi. Dari ilustrasi dapat digambarkan bahwa C
merupakan elemen yang terakhir memasuki stack namun pertama keluar dari stack.
Begitu sebaliknya dengan A. A merupakan elemen pertama yang memasuki tumpukan
namun terakhir saat keluar dari tumpukan.
Di dalam gambar juga terlihat urutan masuk dan keluar
yang berkebalikan. Elemen yang masuk pertama akan keluar erakhir dan
sebaliknya. Prinsip ini telah dikenal dalam struktur data dengan nama
prinsip LIFO (Last In First Out).
Di dalam pengembangannya, stack dapat dikelompokkan menjadi dua bagian. Dua
bagian tersebut yaitu Single Stack dan Double Stack.
Single Stack
Single Stack atau Stack Tunggal adalah stack yang hanya terdiri dari satu
koleksi. Bila stack ini direpresentasikan dengan array, maka pengisian dan
penghapusan harus dilakukan bertahap dari indeks TOP-nya.
Di dalam proses single stack terdapat tiga macam proses utama, yaitu :
- Inisialisasi
- PUSH (Insert,
Masuk, Simpan, Tulis)
- POP (Delete,
Keluar, Ambil, Baca, Hapus)
INISIALISASI
Proses inisialisasi merupakan proses awal yang dilakukan untuk menyimpan
indeks penunjuk stack. Roses ini dilakukan dengan intruksi :
top = -1;
|
PUSH
Proses push adalah proses memasukkan data baru ke stack indeks selanjutnya.
Algoritma dasar proses PUSH adalah :
top = top + 1;array[top] = variable_tampung;
|
POP
Proses pop adalah proses mengeluarkan / mengambil data dari stack
dengan indeks yang disimpan pada variable top. Algoritma dasar proses POP
adalah :
variable_tampung = array[top];top = top – 1;
|
Double Stack
Double Stack atau Stack Ganda adalah stack yang hanya terdiri dari dua
single stack. Bila stack ini direpresentasikan dengan array, maka pengisian dan
penghapusan harus melalui salah satu arah.
Di dalam proses double stack terdapat lima macam proses utama, yaitu :
- Inisialisasi
- PUSH1 (Proses Push
untuk Single Stack pertama)
- POP1 (Proses Pop
untuk Single Stack pertama)
- PUSH2 (Proses Push
untuk Single Stack kedua)
- POP2 (Proses Pop
untuk Single Stack kedua)
Algoritma dasar masing – masing proses adalah sebagai berikut :
INISIALISASI
|
top1 = -1;top2 = MAX_ARRAY;
|
PUSH1
|
top1 = top1 + 1;array[top1] = variable_tampung;
|
POP1
|
variable_tampung = array[top1];top1 = top1 – 1;
|
PUSH2
|
top2 = top2 – 1;array[top2] = variable_tampung;
|
POP2
|
variable_tampung = array[top2];top2 = top2 + 1;
|
Tidak ada komentar:
Posting Komentar