Senarai Berantai Adalah satu struktur data dinamis yang
Senarai Berantai Adalah satu struktur data dinamis yang paling sederhana (linked list) atau juga disebut senarai satu arah ( one way list).
DEKLARASI VARIABEL PADA SENARAI BERANTAI : Type Simpul = ^Tali ; Tali = record Info : char; Berikut : Simpul end; Var elemen Awal, Akhir, Baru : char ; : Simpul;
Masing – masing komponen dinamakan dengan simpul (node). Setiap simpul dalam suatu senarai berantai terbagi menjadi dua bagian : 1. Medan informasi berisi informasi yang disimpan diolah. 2. Medan penyambung (linked field) berisi alamat simpul berikutnya. Awal A B C D E Gambar contoh senarai berantai dengan 6 simpul F
OPERASI PADA SENARAI BERANTAI 1. MENAMBAH : a. Menambah di belakang b. Menambah di depan c. Menambah di tengah 2. MENGHAPUS : a. Menghapus simpul pertama b. Menghapus simpul di tengah c. Menghapus simpul di akhir 3. MEMBACA : a. Membaca maju b. Membaca mundur 4. MENCARI DATA
Illustrasi Penambahan Simpul di Belakang a. Awal A Baru Akhir B C F D b. Akhir^. Berikut : = Baru ; Awal A Baru Akhir B C D F
c. Akhir: = Baru ; Akhir^. Berikut : = nil Awal A B C Baru Akhir D F Procedure tambah_belakang(var Awal, akhir : simpul; elemen : char ); Var Baru : simpul ; Begin new(baru); baru^. info: =elemen; akhir^. berikut : = baru; akhir: =baru; akhir^. berikut: = nil; End;
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^. Berikut : = nil ; End;
Illustrasi Penambahan Simpul di Awal a. Awal Baru A B Akhir C D F b. Baru^. Berikut : = Awal ; Awal Baru A B Akhir C D F
c. Awal: = Baru ; Baru Awal A B Akhir C D F 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;
Illustrasi Penambahan Simpul di Tengah a. Awal Bantu A Akhir D B F C Baru b. Baru^. Berikut : = Bantu^. Berikut; Awal Bantu Akhir A Baru D B C F
b. Bantu^. Berikut : = Baru ; Awal Bantu A Baru D B C Akhir F
Procedure tambah_depan(var Awal, akhir : simpul; elemen : char ); Var bantu, Baru : simpul ; Begin new(baru); baru^. info: =elemen; bantu: =awal; {mencari posisi dimana elemen akan disisipkan} while baru^. info>bantu^. berikut^. info do bantu: =bantu^. berikut; baru^. berikut: =bantu^. berikut; bantu^. berikut: =baru; end;
Illustrasi Penghapusan Simpul di Pertama a. Bantu Awal A B Akhir C D b. Awal: = Bantu^. Berikut; Bantu A Awal B Akhir C D
c. Dispose(bantu); Awal B Akhir C D Illustrasi Penghapusan Simpul di tengah a. Bantu: =Awal^. Berikut; Hapus: =Bantu^. Berikut; Awal Bantu A B Hapus C Akhir D F
b. Bantu^. Berikut: =Hapus^. Berikut; Awal Bantu A Hapus B C Akhir D F c. Dispose(hapus); Awal Bantu A B Akhir D F
Illustrasi Penghapusan Simpul di akhir a. Bantu: =Bantu^. Berikut; Awal A Bantu B C D Akhir F b. Akhir: =Bantu; Awal A Bantu B C D Akhir F
c. Bantu^. Berikut = nil; Awal A Bantu B C D Akhir F
Illustrasi Pembacaan Maju a. Bantu: =Bantu^. Berikut; Writeln(Bantu^. Info); Awal A Bantu B Akhir C D F Illustrasi Pembacaan Mundur a. Bantu: =Bantu^. Berikut; Awal Bantu A B C D Akhir F
- Slides: 19