Selasa, 12 Januari 2010

tugas struktur data menggunakan metode Stack

program balik_kalimat_perkata;
uses wincrt;
const elemen = 255;
type s255 = string[elemen];
tumpukan = record
isi:s255;
atas: 0..elemen;
end;
var t: tumpukan;
i, k, l, m: integer;
kalimat, word: s255;
procedure awalan(var t: tumpukan);
begin
t.atas:=0;
end;
procedure push (var t:tumpukan; x: char);
begin
t.atas:=t.atas+1;
t.isi[t.atas]:= x;
end;
function pop(var t:tumpukan):char;
begin
pop:=t.isi[t.atas];
t.atas:=t.atas-1;
end;
begin
clrscr;
awalan(t);
writeln('Tumpukan untuk membalik kalimat');
writeln('*******************************');
writeln;
write('ketik kalimat: '); readln(kalimat);
clrscr;
writeln('kalimat asli: ',kalimat);
writeln;writeln('setelah operasi push dan pop');
for i:=1 to length(kalimat) do
begin
if (kalimat[i]=' ') then
begin
for k:=(i-1) downto l do
word:=word+kalimat[k];
word:=word+kalimat[i];
end;
l:=length(word);
if i=length(kalimat) then
begin
for i:=length(kalimat) downto l do
word:=word+kalimat[i];
end;
end;
for i := 1 to (length(kalimat) + 1) do
push(t, word [i]);
for i := 1 to (length(kalimat) + 1) do
write (pop (t) );
readln;
end.