Stack adalah suatu tumpukan. Konsep utama dari stack adalah LIFO (Last In First Out), yaitu benda yang terakhir masuk ke dalam stack akan menjadi benda pertama yang dikeluarkan dari tumpukan. Dalam pascal ada dua cara penerapan stack, yaitu dengan array dan linked list.
Single Stack dengan Array
Sesuai dengan sifat stack, maka pengambilan/penghapusan elemen dalam stack harus dimulai dari elemen teratas. Deklarasi konstanta, tipe, dan variable yang akan dipakai dalam penjelasan operasi‐operasi stack dengan array adalah :
Const
Max = {jumlah tumpukan}
Type
TipeData = { };
Stack = array [1..Max] of TipeData;
Var
Top : TipeData;
Operasi-operasi pada Single Stack dengan Array
- Create : Membuat stack baru yang masih kosong
Begin
Top := 0;
End;
- Full : Fungsi untuk memeriksa apakah stack yang ada sudah penuh
Begin
Full := False;
If top = max then Full := True;
End;
- Push : Menambahkan sebuah elemen‐elemen ke dalam stack. Tidak bisa dilakukan lagi jika stack sudah penuh.
Begin
If not Full then
Begin
Top := Top+1; { atau Inc(Top) }
Stack[Top] := elemen;
End;
End;
- Empty : Fungsi untuk menentukan apakah stack kosong atau tidak.
Begin
Empty := False;
If Top = 0 then Empty := True;
End;
- Pop : Mengambil elemen teratas dari stack. Stack tidak boleh kosong.
Begin
If not Empty then
Begin
Elemen := stack[Top];
Top := Top‐1; { atau Dec(Top) }
End;
End;
- Clear : Mengosongkan stack ( Jika top = 0, maka stack dianggap kosong)
Begin
Top := 0;
End;
Demikian penjelasannya , Mohon maaf bila ada kesalahan dalam penulisan. Semoga bermanfaat.