210 likes | 477 Views
Senarai Berantai. Adalah salah 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;
E N D
Senarai Berantai Adalah salah 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 : char ; Awal, Akhir, Baru : Simpul;
Masing – masing komponen dinamakan dengan simpul (node). • Setiapsimpuldalamsuatusenaraiberantaiterbagimenjadiduabagian : • Medan informasiberisiinformasi yang disimpandandiolah. • Medan penyambung (linked field) berisialamatsimpulberikutnya. A B C D E F Awal Gambar contoh senarai berantai dengan 6 simpul
OPERASI PADA SENARAI BERANTAI • MENAMBAH : • Menambahdibelakang • Menambahdidepan • Menambahditengah • MENGHAPUS : • Menghapussimpulpertama • Menghapussimpulditengah • Menghapussimpuldiakhir • 3. MEMBACA : • Membacamaju • Membacamundur • 4. MENCARI DATA
Illustrasi Penambahan Simpul di Belakang a. Awal Baru Akhir B C D F A A B D F b. Akhir^.Berikut := Baru ; Awal Baru Akhir C
c. Akhir:= Baru ; Akhir^.Berikut := nil Awal Baru Akhir A B D F C 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 Akhir C D A F D C B F b. Baru^.Berikut := Awal ; Awal Baru Akhir A B
c. Awal:= Baru ; Baru Awal Akhir C D F A B 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 Awal Bantu Akhir a. B A A B D F Baru C b. Baru^.Berikut := Bantu^.Berikut; Awal Bantu Akhir D F Baru C
b. Bantu^.Berikut := Baru ; Awal Bantu Akhir A D B F Baru C
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. C D A B B D A Bantu Awal Akhir b. Awal:= Bantu^.Berikut; Bantu Awal Akhir C
c. Dispose(bantu); Awal Akhir A B C D F B D C Illustrasi Penghapusan Simpul di tengah Bantu:=Awal^.Berikut; Hapus:=Bantu^.Berikut; a. Hapus Awal Bantu Akhir
Bantu^.Berikut:=Hapus^.Berikut; b. Hapus Awal Bantu Akhir D F C A D F A B Dispose(hapus); c. Awal Bantu Akhir B
Illustrasi Penghapusan Simpul di akhir Bantu:=Bantu^.Berikut; a. C D A C F B D F B A Awal Bantu Akhir Akhir:=Bantu; b. Awal Bantu Akhir
Bantu^.Berikut = nil; c. Awal Bantu Akhir A B D C F
Illustrasi Pembacaan Maju Bantu:=Bantu^.Berikut;Writeln(Bantu^.Info); a. Awal Bantu Akhir A C F D B F Illustrasi Pembacaan Mundur Bantu:=Bantu^.Berikut; a. Awal Bantu Akhir C D A B