Linked adalah koleksi data heterogen dengan sifat setiap node (kecuali node terakhir) mempunyai penerus dan setiap node (kecuali node pertama) mempunyai pendahulu. Salah satu penggunaan pointer adalah untuk membuat linked list atau senarai berantai.
Linked list (senarai berantai) sendiri dapat diartikan sebagai sekumpulan node yang saling berhubungan (berantai) dengan bantuan pointer.
Deklarasi pointer dan simpul
type Simpul = ^Data;
Data = record
Info : char;
Berikut: simpul;
End;
Var Elemen : char;
Awal, Akhir, Baru: simpul;
Menambah di belakang
procedure Tambah_Belakang (var Awal, Akhir :simpul; elemen: char)
var Baru: simpul;
Begin
New(baru);
Baru^.info:=Elemen;
If Awal = nil then
Awal:=baru;
Else
Akhir^.berikut:=Baru;
Akhir:=baru;
Akhir^:=baru;
Akhir^.berikut:=nil
End;
Menambah di depan
procedure Tambah_Depan (var Awal, Akhir :simpul; elemen: char)
var Baru: simpul;
Begin
New(baru);
Baru^.info:=Elemen;
If Awal = nil then
Akhir:=baru;
Else
Baru^.berikut:=Awal;
Awal:=baru;
End;
Menambah di tengah
procedure Tambah_Tengah (var Awal, Akhir :simpul; elemen: char)
var Baru, Bantu: simpul;
Begin
New(baru);
Baru^.info := Elemen;
If Awal = nil then
begin
Awal:=baru;
Akhir:=baru;
End
Else
Begin
Bantu:=Awal;
While Elemen > Baru^.berikut^.info do
Bantu:=bantu^.berikut;
Baru^:=berikut:=bantu^.berikut;
Bantu^.berikut:=baru;
End;
End;
Menghapus Simpul
procedure Hapus_Simpul (var Awal, Akhir :simpul; elemen: char)
var Hapus, Bantu: simpul;
Begin
If Awal = nil then
Writeln(‘Senarai masih kosong’)
Else
If awal^.info = elemen then
Begin
Hapus := awal;
Awal := hapus^.berikut;
Dispose(hapus)
End
Else
Begin
Bantu := awal;
While (elemen <> bantu^.info) and (bantu^.berikut<>nil) do
Bantu:=bantu^.berikut;
Hapus:=bantu^.berikut;
If hapus <> akhir then
Bantu^.berikut
Else
Begin
Akhir:= bantu;
Akhir^.berikut:=nil
End;
Dispose(hapus)
End
Else
Writeln(‘Simpul yang akan dihapus tidak ada’)
end
End;
Rabu, 10 Desember 2008
Langganan:
Postingan (Atom)
