Saturday, February 14, 2009

SENARAI BERANTAI

Menambah Simpul

Misal deklarasi simpulnya adalah:
type simpul =^node;
node = record
isi:string;
next: simpul;
end;
var awal, akhir,baru:simpul;

Menambah di Depan

Tambah Depan:
1. Buat sebuah simpul BARU.
2. Sambungkan simpul BARU ke simpul AWAL.
3. Pindahkan pointer AWAL agar menunjuk ke simpul BARU.

PROCEDURE TambahDepan(elemen : string);
BEGIN
NEW(Baru);
Baru^.isi := elemen;
if awal=nil then baru^.next:=nil
else
Baru^.next := Awal;
Awal := Baru;
END;

Menambah di Belakang:

Tambah Belakang :
1. Buat sebuah simpul BARU.
2. Sambungkan simpul AKHIR ke simpul BARU.
3. Pindahkan pointer AKHIR agar menunjuk ke simpul BARU.

PROCEDURE TambahBelakang(elemen:string);
BEGIN
NEW(Baru);
Baru^.isi := elemen;
if awal=nil then
begin
Baru^.next := nil;
akhir^.next:=nil;
end
else
Akhir^.next:= Baru;
Akhir := Baru;
END;

Menambah di Tengah {SISIP}

Tambah Tengah:
1. Buat sebuah simpul BARU.
2. Gunakan sebuah pointer Bantu, arahkan pada simpul yang akan diletakkan di depan simpul BARU
3. Sambungkan simpul BARU ke simpul di depan simpul yang ditunjuk oleh pointer BANTU
4. Sambungkan simpul yang ditunjuk oleh pointer BANTU ke simpul BARU

PROCEDURE TambahTengah(elemen :string);
BEGIN
NEW(Baru);
Baru^.isi := elemen;
if awal = nil then
begin
awal:=baru;
Baru^.next := nil;
end else
begin
Bantu:=awal;
WHILE Bantu^.next.^.isi <>Akhir DO Bantu:=Bantu^.Berikut;
Hapus:=Akhir;
Akhir:=Bantu;
Akhir^.Berikut:=nil;
DISPOSE(Hapus);
END;

Menghapus di tengah

Hapus Tengah:
1. Gunakan pointer BANTU dan pointer HAPUS.
2. Arahkan pointer BANTU ke simpul sebelum simpul yang mau dihapus.
3. Arahkan pointer HAPUS ke simpul yang mau dihapus (simpul sesudah simpul yang ditunjuk oleh pointer BANTU).
4. Arahkan pointer BANTU^.BERIKUT ke simpul yang ditunjuk oleh pointer HAPUS^.BERIKUT.
5. Hapus simpul yang ditunjuk oleh pointer HAPUS.

PROCEDURE HapusTengah(Angka : byte; VAR Awal : Pointer);
VAR Bantu, Hapus : Pointer;
BEGIN
Bantu := Awal;
WHILE (Bantu^.Berikut^.Angka <> Angka) DO Bantu:=Bantu^.Berikut;
Hapus:=Bantu^.Berikut;
Bantu^.Berikut:=Hapus^.Berikut;
DISPOSE(HAPUS);
END;

0 comments:

Post a Comment

Please leave your message here..