150 likes | 291 Views
Menghapus Simpul dan Travelsal. Pengantar. Penggunaan variabel statis(misalnya Larik) yang tidak begitu efisien dalam pemrograman yang membutuhkan jumlah data yang dinamis (berubah).
E N D
Pengantar • Penggunaan variabel statis(misalnya Larik) yang tidak begitu efisien dalam pemrograman yang membutuhkan jumlah data yang dinamis (berubah). • Variabel Dinamis adalah salah satu solusi untuk melakukan efisiensi terhadap penggunaan memori, yaitu ketika data tidak dibutuhkan, maka data itu harus dihapus sekaligus membebaskan memori
Q.Depan =2 Q.Belakang =5 Del(Q) Q.Depan =3 Q.Belakang =5 Del(Q) Penghapusan terhadap elemen dalam Antrian, yang menggunakan variabel statis hanya melakukan perubahan terhadap nilai variabel depan, dengan demikian nilai dari Q[1] s/d Q[n] masih ada dalam memori
Menghapus (Dispose) • Penghapusan simpul dapat dilakukan terhadap senarai berantai, dimana simpul-simpul yang dihapus adalah simpul yang berada di awal, di akhir maupun yang berada di tengah. • Untuk menghapus simpul digunakan perintah DISPOSE(Var Pointer) • Misalnya Dispose (bantu) Dispose (Akhir)
Menghapus Simpul Awal Awal P M K M A B I Simpul yg akan dihapus Hapus
Menghapus Simpul Awal Awal M K M A B I Hapus Simpul yg akan dihapus
Menghapus Simpul Awal Awal M K M A I If awal = nil Then List kosong Else Hapus =awal Awal = Hapus^.next Dispose(Hapus) Fi Hapus Hapus = awal awal = awal^.next Dispose(hapus)
Menghapus Simpul Akhir Awal Ctt : untuk bisa melakukan penghapusan simpul yang paling akhir, maka linked list harus memiliki paling sedikit 2 buah simpul P M K M A B I Hapus Bantu Bantu = awal Simpul yg akan dihapus While bantu^.next^.next<> nil do Bantu = bantu^.Next E-while Hapus = bantu^.next Dispose(hapus) Bantu^.next = nil
Menghapus Simpul Tengah Awal Ctt : untuk bisa harus memiliki paling sedikit 3 buah simpul 10 30 40 20 50 Hapus Read key (key=40) Bantu Bantu = awal While bantu^.next^.info<>key do Bantu = bantu^.Next E-while Simpul yg akan dihapus Hapus = bantu^.next Bantu^.next = hapus^.next Dispose(hapus)
Travelsal/mengunjungi simpul 1. Mencetak isi semua simpul Awal P M K M A B I Bantu Bantu = awal While bantu <> nil do Write Bantu^.info Bantu= bantu ^.next E-while
Travelsal/mengunjungi simpul 1. Mencetak isi semua simpul Awal P M K M A B I Bantu While bantu <> nil do Write Bantu^.info Bantu= bantu ^.next E-while
Travelsal/mengunjungi simpul 1. Mencetak isi semua simpul Awal P M K M A B I Bantu Bantu Bantu Bantu Bantu Bantu While bantu <> nil do Write Bantu^.info Bantu= bantu ^.next E-while
Travelsal/mengunjungi simpul 2. Mencari elemen dalam List Key= I Awal P M K M A B I Bantu Bantu Bantu Bantu Bantu Read key, Bantu = awal, temu = false While bantu <> nil and temu = false do If key = bantu^.info then temu = true fi Bantu= bantu ^.next E-while If temu then Data ditemukan Else Data tidak ditemukan fi
quiz awal 60 70 10 20 50 Buat algoritma untuk mencari data terbesar dalam list
Mencari rata-rata Bantu = awal While bantu <>nil do Total = total + Bantu^.info jumlah = jumlah + 1 bantu = bantu^.next E-while Rata = total/jumlah