Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Senarai Berantai Dua Arah

Presentasi serupa


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

1 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; Kepala^.info Kepala New(Kepala) Kepala^.Kiri = Nil Kepala^.Kanan = Nil Kepala^.Kiri Kepala^.Kanan

4 Menambah Simpul di awal
Kepala Kepala a2 Baru Baru 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 Kepala^.kanan^.kiri = 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 Menambah Simpul di Tengah
Menyambung simpul yang baru ke List Kepala dilakukan dengan proses : a b d Kepala c Bantu Baru

8 Menambah Simpul di Tengah
Kepala c Bantu Baru 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 Menambah Simpul Di Akhir
c d Kepala Akhir Baru

12 Menambah Simpul Di Akhir
c d Kepala Akhir Baru^.Kanan = nil Baru^.Kiri = akhir Akhir^.Kanan = baru 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 a b c Kepala 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
b c Kepala 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 Bantu a b c Kepala

20 Traversal Membaca mundur sampai ke Kepala While Bantu<> Kepala
Do write bantu^.info bantu = bantu^.kiri E-while a b c Kepala 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

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; Kepala New(kepala) Kepala^.Kiri = Kepala Kepala^.Kanan =kepala

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

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 Dua Arah"

Presentasi serupa


Iklan oleh Google