Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
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
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.