Listing Program :
Program QueueLinkedList;
Uses crt;
Type pointer = ^ simpul;
simpul = record
data : char;
next : pointer;
end;
antrian = record
rear,front : pointer;
end;
var q: antrian;
baru,bantu,hapus : pointer;
elemen : char;
i : integer;
Procedure enqueue;
begin
new(baru);
baru^.data := elemen;
baru^.next := nil;
if q.rear = nil then
begin
q.front^.data := elemen;
q.rear := baru;
end
else
begin
baru^.next := baru;
q.rear := nil;
end;
end;
Procedure dequeue;
begin
new (bantu);
bantu := q.rear;
if q.rear <> q.front then
begin
while bantu^.next <> q.front do
bantu := bantu^.next;
elemen := bantu^.data;
new (hapus);
hapus := q.front;
q.front := bantu;
q.front^.next := nil;
dispose (hapus);
end
else
begin
new (hapus);
hapus := q.front;
elemen := q.front^.data;
q.front := q.rear;
q.rear := hapus^.next;
dispose (hapus);
end;
end;
Procedure cetak;
begin
write('isi antrian saat ini :');
new (bantu);
bantu := q.rear;
if q.rear <> nil then
begin
while bantu^.next <> nil do
begin
write(bantu^.data:4);
bantu := bantu^.next;
end;
writeln(bantu^.data:4);
end;
end;
begin {program utama}
clrscr;
write('masukkan panjang antrian :');readln (i);
for i := 1 to i do
begin
write('masukkan elemen antrian ke',i,' : ');readln (elemen);
enqueue;
cetak;
end;
readln;
write('proses penghapusan elemen antrian :');
while q.rear <> nil do
begin
readln;
dequeue;
writeln('elemen yang dikeluarkan :',elemen :4);
cetak;
end;
writeln('antrian telah kosong...!');
readln;
end.
Uses crt;
Type pointer = ^ simpul;
simpul = record
data : char;
next : pointer;
end;
antrian = record
rear,front : pointer;
end;
var q: antrian;
baru,bantu,hapus : pointer;
elemen : char;
i : integer;
Procedure enqueue;
begin
new(baru);
baru^.data := elemen;
baru^.next := nil;
if q.rear = nil then
begin
q.front^.data := elemen;
q.rear := baru;
end
else
begin
baru^.next := baru;
q.rear := nil;
end;
end;
Procedure dequeue;
begin
new (bantu);
bantu := q.rear;
if q.rear <> q.front then
begin
while bantu^.next <> q.front do
bantu := bantu^.next;
elemen := bantu^.data;
new (hapus);
hapus := q.front;
q.front := bantu;
q.front^.next := nil;
dispose (hapus);
end
else
begin
new (hapus);
hapus := q.front;
elemen := q.front^.data;
q.front := q.rear;
q.rear := hapus^.next;
dispose (hapus);
end;
end;
Procedure cetak;
begin
write('isi antrian saat ini :');
new (bantu);
bantu := q.rear;
if q.rear <> nil then
begin
while bantu^.next <> nil do
begin
write(bantu^.data:4);
bantu := bantu^.next;
end;
writeln(bantu^.data:4);
end;
end;
begin {program utama}
clrscr;
write('masukkan panjang antrian :');readln (i);
for i := 1 to i do
begin
write('masukkan elemen antrian ke',i,' : ');readln (elemen);
enqueue;
cetak;
end;
readln;
write('proses penghapusan elemen antrian :');
while q.rear <> nil do
begin
readln;
dequeue;
writeln('elemen yang dikeluarkan :',elemen :4);
cetak;
end;
writeln('antrian telah kosong...!');
readln;
end.
Jangan lupa
tinggalkan pesan berupa saran dan kritik yang bermanfaat untuk blog ini.
Untuk teman-teman yang hendak mencopy artikel ini untuk dipasang pada blog atau
web-nya, dengan sangat diharapkan untuk mencantumkan Link keblog ini sebagai
sumber artikel sekaligus sebagai backlink untuk blog ini. Terima kasih untuk pengertian
dan kerjasamanya, mari berkembang bersama.
Tidak ada komentar:
Posting Komentar