Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Senarai Berantai Senarai Berantai Dua Arah Kepala.

Presentasi serupa


Presentasi berjudul: "Senarai Berantai Senarai Berantai Dua Arah Kepala."— Transcript presentasi:

1 Senarai Berantai Senarai Berantai Dua Arah Kepala

2 Tujuan  Untuk mengetahui simpul sebelum dan sesudahnya  Untuk dapat melakukan travelsal yang dilakukan mulai dari simpul terakhir  Untuk mempermudah pengaksesan, misalnya ketika melakukan penambahan di simpul akhir, dan melakukana penghapusan terhadap simpul akhir

3 Defenenisi struktur Data Simpul = ^Data Data= Record Info: Tipe Data Kiri,Kanan: Simpul End; New(Kepala) Kepala^.Kiri = Nil Kepala^.Kanan = Nil Kepala Kepala^.Kiri Kepala^.Kanan Kepala^.info

4 Menambah Simpul di awal Kepala Baru a1 Kepala Baru a1 a2 Diskusikan : Algoritma Untuk menambah Simpul

5 Procedure Tambah1(x:tipedata) New(baru) Baru^.info = x If kepala^.kanan = nil then Baru^.kanan = Kepala^.Kanan Baru^.Kiri = Kepala Kepala^.kanan = baru Else Baru^.kanan = Kepala^.Kanan Baru^.Kiri = Kepala Kepala^.kanan^.kiri = baru Kepala^.kanan = baru fi

6 Menambah Simpul di Tengah Penambahan Simpul Ditengah, secara prinsipnya adalah sama dengan penambahan simpul setelah simpul kepala, namun dibutuhkan sebuah variabel bantu untuk mengetahui posisi sebelum simpul yang baru Proses untuk mencari posisi bantu Bantu = Kepala While Baru^.info > Bantu^.Kanan^.info Do Bantu = bantu^.kanan E-while

7 Menyambung simpul yang baru ke List Kepala dilakukan dengan proses : Kepala abd c Bantu Baru Menambah Simpul di Tengah

8 Kepala abd c Bantu Baru Menambah Simpul di Tengah Baru^.Kanan = Bantu^.Kanan Baru^.kiri = Bantu Bantu^.Kanan ^.kiri = Baru Bantu^.Kanan = Baru

9 Procedure Tambah2( x :tipedata) New(Baru) Baru^.Info = x Bantu = Kepala While Baru^.info > Bantu^.Kanan^.info Do Bantu = bantu^.kanan E-while Baru^.Kanan = Bantu^.Kanan Baru^.kiri = Bantu Bantu^.Kanan ^.kiri = Baru Bantu^.Kanan = Baru

10 Menambah Simpul Di Akhir Penambahan simpul di akhir pada prinsipnya sama dengan penambahan simpul pada senarai berantai satu arah, dimana tahapan yang harus dilakukan duluan adalah melakukan penelusuran untuk menemukan simpul terakhir ( Jika Kanan = nil) Akhir = Kepala While akhir^.kanan<> Nil Do Akhir = Akhir^.Kanan E-while

11 Kepala abc d Akhir Baru Menambah Simpul Di Akhir

12 Kepala abc d Akhir Baru Menambah Simpul Di Akhir Baru^.Kanan = nil Baru^.Kiri = akhir Akhir^.Kanan = baru

13 Procedure Tambah3(x :tipe data) New(baru) Baru^.info = x Baru^.Kanan = nil Akhir = kepala While Akhir^.kanan <> nil Do akhir = akhir^.kanan E-while Baru^.Kiri = akhir Akhir^.kanan = baru

14 Menghapus Simpul Menghapus Simpul Awal Penghapusan simpul dapat dilakukan jika list tidak kosong List tidak kosong ditandai dengan kepala^.kanan <> nil if kepala^.kanan = nil then List Kosong, tidak ada yang akan dihapus else Penghapusan dapat dilakukan

15 Menghapus Simpul Kepala abc target Hapus Hapus = kepala^.kanan Hapus^.Kanan^.kiri = Kepala Kepala^.Kanan = Hapus^.Kanan Dispose(Hapus)

16 Procedure Del1 If kepala^.Kanan = nil Then List kosong Else Hapus = kepala^.kanan Hapus^.kanan^.Kiri =Kepala Kepala^.kanan = Hapus^.Kanan Dispose(Hapus)

17 Menghapus Simpul Akhir Kepala abc target Akhir If Kepala^.Kanan = nil Then List Kosong Else Akhir = kepala^.kanan While Akhir^.kanan <> nil Do akhir = akhir^.kanan E-while Akhir^.Kiri^.Kanan = Nil Dispose(Akhir)

18 Traversal  Kelemahan yang terjadi pada list satu arah adlah ketika harus melakukan pembacaan atau pencarian dimana dilakukan dari data yang paling terakhir tidak dapat dilakukan, kecuali harus melakukan perubahan terhadap list, yaitu memutar list  Dengan list dua arah hal ini dapat dilakukan dengan langkah-langkah sbb : Tempatkan bantu berada pada posisi simpul terakhir Lakukan pergerakan Mundur sampai bantu berada pada posisi kepala

19 Traversal Menempatkan bantu ke simpul terakhir Bantu = kepala While Bantu^.Kanan<> nil Do bantu = bantu^.Kanan E-while Kepala abc Bantu

20 Traversal Membaca mundur sampai ke Kepala While Bantu<> Kepala Do write bantu^.info bantu = bantu^.kiri E-while Kepala abc Bantu

21 Traversal Bantu =kepala While Kepala^.kanan <> nil do bantu = bantu^.kanan E-while While Bantu<> kepala Do write Bantu^.info Bantu = bantu^.kiri E-while

22 Senarai Berantai Dua Arah Berputar Kepala Simpul awal dikenal dengan Kepala^.kanan Simpul Akhir dikenal dengan Kepala^.kiri

23 Deklarasi struktur data Simpul = ^data Data = record info : tipe data Kiri,kanan : simpul End; New(kepala) Kepala^.Kiri = Kepala Kepala^.Kanan =kepala Kepala

24 Menambah Simpul di awal Kepala baru x1 Baru^.kanan = Kepala Baru^.kiri = kepala Kepala x1

25 Procedure TambahK1(x :tipe data) New(baru) Baru^.info=x Baru^.kanan = kepala^.kanan Baru^.kiri = kepala Kepala^.kanan = baru If kepala^.kiri = keala then Kepala^.kiri = baru fi

26 Procedure TambahK3(x:tipe data) New(baru) Baru^.info (x) Baru^.kanan = kepala Baru^.kiri= kepala^.kiri Kepala^.Kiri^.kanan= baru Kepala^.kiri = baru


Download ppt "Senarai Berantai Senarai Berantai Dua Arah Kepala."

Presentasi serupa


Iklan oleh Google