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.
Ilustrasi stack pada saat inisialisasi
Fungsi IsFull
Untuk memeriksa apakah stack sudah penuh?
Dengan cara memeriksa top of stack, jika sudah sama dengan MAX_STACK-1 maka full, jika belum (masih lebih kecil dari MAX_STACK-1) maka belum full
Ilustrasi
Sintak Stack :
----------------------
Program StackTumpukan;
uses crt;
const Nmax = 100;
type Stack = record
isi : array[1..Nmax] of integer;
top : integer;
end;
function IsEmpty(S : Stack) : boolean; {mengecek stack kosong}
var
empty : boolean;
begin
if S.top = 0 then
empty := true
else
empty := false;
IsEmpty := empty;
end;
function IsFull(S : Stack) : boolean; {mengecek stack penuh}
var
full : boolean;
begin
if S.top = Nmax then
full:=true
else
full:=false;
IsFull := full;
end;
Procedure PUSH (var S:Stack; x : integer); {fungsing push/ memasukkan}
begin
if IsFull(S) = false then
begin
S.top := S.Top + 1;
S.isi[S.top] :=x;
end;
end;
Procedure POP (var S : Stack; var x : integer); {fungsi pop / mengambil/dilayani}
begin
if IsEmpty(S) = false then
begin
x:=S.isi[S.top];
S.top := S.top-1;
end;
writeln('Hasil POP ', x);
end;
// contoh program utama
var
a,b,c,x,i : integer;
S : Stack;
begin
a := 5;
b := 3;
c := 7;
s.top:=0;
PUSH(S,a);
PUSH(S,c*c);
POP(S,x);
b:=x;
PUSH(S,a+b);
POP(S,x);
a:=x;
POP(S,x);
b:=x;
for i:=1 to s.top do
writeln(S.isi[i]);
writeln(s.top);
readln;
end.
Related Post :