230 likes | 617 Views
SENARAI BERANTAI (LINKED LIST). Fajrizal. Senarai / list adalah : Kumpulan linear sejumlah data Atau ; Kumpulan komponen yg disusun secara berurutan dengan bantuan pointer. Masing-masing komponen dinamakan dengan simpul (node). Setiap simpul dalam senarai berantai terbagi menjadi dua,
E N D
SENARAI BERANTAI(LINKED LIST) Fajrizal
Senarai / list adalah : Kumpulan linear sejumlah data Atau ; Kumpulan komponen yg disusun secara berurutan dengan bantuan pointer. Masing-masing komponen dinamakan dengan simpul (node). Setiap simpul dalam senarai berantai terbagi menjadi dua, * bagian pertama disebut medan informasi * bagian kedua disebut medan penyambung ( linked list)
Awal Contoh senarai berantai dengan 6 simpul : E F D C B A Medan penyambung dari simpul kedua Medan informasi dari simpul kedua
PENYAJIAN SENARAI BERANTAI INFO SAMBUNGAN 1 2 Awal 3 2 4 5 6 7 Habis 8 9 10
SEX SAMBUNGAN NAMA ANGK NOMOR 1 2 3 TEK 4 7 5 6 EKON 7 2 8 9 10 11 12 13 14
OPERASI PADA SENARAI BERANTAI 1. Menambah Simpul Menggunakan Deklarasi Pointer type simpul = ^Data; Data = record info : string; Berikut : Simpul; end; var Elemen : string; Awal, Akhir, Baru : Simpul;
a. Menambah di belakang Baru Akhir Awal F D C B A Baru Akhir Awal F D C B A Baru Akhir Awal F D C B A
Procedure untuk menambah simpul di belakang : procedure TAMBAH_BELAKANG ( var awal, akhir : simpul; elemen : string); var baru : simpul ; begin new (baru); baru^.info := elemen ; if awal = nil then senarai masih kosong awal := baru else akhir^.berikut := baru ; akhir := baru; akhir^.berikut := nil end;
b. Menambah di depan Akhir Awal Baru F D C B A Akhir Awal Baru F D C B A Akhir Baru Awal F D C B A
Procedure untuk menambah simpul di depan : procedure TAMBAH_DEPAN ( var awal, akhir : simpul; elemen : string); var baru : simpul ; begin new (baru); baru^.info := elemen ; if awal = nil then senarai masih kosong akhir := baru else baru^.berikut := awal ; awal := baru; end;
c. Menambah di tengah Akhir Bantu Awal F D B A Baru C Akhir Bantu Awal F D B A Baru C Akhir Bantu Awal F D B A Baru C
Procedure untuk menambah simpul 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 senarai masih kosong begin awal := baru; akhir := baru end else begin { mencari lokasi yg sesuai } bantu := awal; while elemen > baru^.berikut^.info do bantu := bantu^.berikut; { menyisipkan simpul baru} baru^.berikut := bantu^.berikut ; bantu^.berikut := baru; end; end;
2. Menghapus Simpul a. Menghapus simpul pertama Akhir Bantu Awal E D C B A Akhir Awal Bantu E D C B A Akhir Awal E D C B
b. Menghapus simpul di tengah / terakhir Akhir Hapus Bantu Awal E D C B A Akhir Hapus Bantu Awal E D C B A Akhir Awal E D B A