Anda di halaman 1dari 2

program testLinkedList;

uses wincrt;
CONST
Header
='------------ Menu Utama ------------';
Separator ='------------------------------------';
type
PSimpul = ^Simpul;
Simpul = Record
Info : String[25];
Next : PSimpul;
End;
Procedure Tambah(Var Head, Tail : PSimpul; Elemen : Char);
Var Temp : PSimpul;
Begin
New(Temp);
Temp^.Info := Elemen;
If Head = NIL Then
{ Jika Link List Masih Kosong }
Head := Temp
Else
Tail^.Next := Temp;
{ Gambar 2.3.b. }
Tail := Temp; { Gambar 2.3.c. }
Tail^.Next := NIL;
End;
Procedure Hapus(Var Head, Tail : PSimpul; Elemen : Char);
Var Temp1, Temp2 : PSimpul;
Begin
If Head = NIL Then { Jika Link List Masih Kosong }
Writeln('Link List Masih Kosong')
Else If Head^.Info = Elemen Then
{ Simpul Pertama dihapus }
Begin
Temp2:=Head;
Head := Temp2^.Next;
Dispose(Temp2);
End
Else
{Menghapus simpul tengah / }
Begin
{Akhir }
Temp1 := Head;
{ Memulai proses pencarian elemen yang akan dihapus }
While (Elemen <> Temp1^.Info) And (Temp1^.Next <> NIL) Do
Temp1 := Temp1^.Next;
If Temp2 <> NIL Then { Jika simpul ketemu }
Begin
{ Jika Simpul yang di cari ada di tengah }
If Temp2 <> Tail Then
Temp1^.Next := Temp2^.Next
Else
Begin
Tail := Temp1;
Tail^.Next := NIL;
End;
Dispose(
Temp2);
End
Else
{ Simpul yang akan dihapus tidak ketemu }
Writeln('Simpul Tidak di ketemukan !');
End;
End;

Procedure Baca_Maju(Head : PSimpul);


Var Temp : PSimpul;
Begin
Temp := Head;
Repeat
Write(Temp^.Info,' ');
Temp := Temp^.Next
Until Temp <> NIL;
End;
Procedure Baca_Mundur(Temp : PSimpul);
Begin
If Temp <> NIL Then
Begin
Baca_Mundur(Temp^.Next);
Write(Temp^.Info,' ');
End;
End;
begin
writeln(separator);
writeln(header);
writeln(separator);
end.

Anda mungkin juga menyukai