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.
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
Algoritma Stack di Pascal
---------------------------------
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;
Download Algoritmanya disini
0 Response to "Pengertian dan Algoritma Stack (Tumpukan) di Pascal"
Post a Comment