Contoh Program Stack - Pascal



Mudah - mudahan berjalan ya... ;-)

program stack;
uses crt;
type ptr= ^simpul;
simpul=record
nama : string;
tinggi : real;
next : ptr;
end;
var
list,baru: ptr;
i,n,pil: integer;
nama: string;
tinggi: real;
procedure tambahdata_dpn(var listnya: ptr; namanya: string; tingginya: real);

var baru: ptr;
begin
new(baru);
baru^.nama:=namanya;
baru^.tinggi:=tingginya;
if listnya= nil then
listnya:= baru
else
baru^.next:=listnya;
listnya:=baru;
end;
procedure tampildata_dpn(var listnya: ptr);
var bantu: ptr;
begin
bantu:= listnya;
writeln ('NAMA - TINGGI'); writeln;
while bantu <> nil do
begin
writeln (bantu^.nama,'-',bantu^.tinggi:0:2);
bantu:=bantu^.next;
end;
end;
procedure hapusdata_dpn(var listnya: ptr);
var bantu: ptr;
begin
if listnya=nil then
writeln('List kosong')
else
if listnya^.next=nil then
begin
bantu:=listnya;
listnya:=nil;
dispose(bantu);
end
else
begin
bantu:=listnya;
listnya:=listnya^.next;
dispose(bantu);
end;
end;
begin
list:=nil;
repeat
clrscr;
writeln('Menu: ');
writeln;
writeln('(1). Tambah Data');
writeln ('(2). Ambil Data');
writeln ('(3). Lihat Data');
writeln ('(0). Keluar');
write ('PILIHAN = ');
readln(pil); writeln;
case pil of
1:begin
write('Banyak Data yang ditambah [PUSH] = '); readln(n);
for i:=1 to n do
begin
writeln('-------------');
write('NAMA = '); readln(nama);
write('TINGGI = '); readln(tinggi);
tambahdata_dpn(list,nama,tinggi);
end;
end;
2:begin
hapusdata_dpn(list);
writeln('Data Telah Ditambah[POP]');
readln;
end;
3:begin
tampildata_dpn(list);
readln;
end;
end;
until(pil=0);
readln;
end.

1 komentar: