menghapus simpul dan travelsal
DESCRIPTION
Menghapus Simpul dan Travelsal. Pengantar. Penggunaan variabel statis(misalnya Larik) yang tidak begitu efisien dalam pemrograman yang membutuhkan jumlah data yang dinamis (berubah). - PowerPoint PPT PresentationTRANSCRIPT
1
Menghapus Simpul Menghapus Simpul dan Travelsaldan Travelsal
Menghapus Simpul Menghapus Simpul dan Travelsaldan Travelsal
2
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
3
Del(Q)
A B C D E
A B C D EQ.Depan =2
Q.Belakang =5
Del(Q) A B C D E Q.Depan =3
Q.Belakang =5
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
4
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)
5
Menghapus Simpul Awal
P B M K I M A
Awal
Simpul yg akan dihapus
Hapus
6
Menghapus Simpul Awal
B M K I M A
Awal
Simpul yg akan dihapus
Hapus
7
Menghapus Simpul Awal
M K I M A
Awal
Hapus
If awal = nilThen List kosongElse Hapus =awal Awal = Hapus^.next Dispose(Hapus)
Fi
Hapus = awal
awal = awal^.next Dispose(hapus)
8
Menghapus Simpul Akhir
P B M K I M A
Awal
Simpul yg akan dihapus
Hapus
Ctt : untuk bisa melakukan penghapusan simpul yang paling akhir, maka linked list harus memiliki paling sedikit 2 buah simpul
Bantu
While bantu^.next^.next<> nil do
Bantu = bantu^.Next
E-while
Bantu = awal
Hapus = bantu^.next
Dispose(hapus)
Bantu^.next = nil
9
Menghapus Simpul Tengah
10 20 30 40 50
Awal
Simpul yg akan dihapus
Ctt : untuk bisa
harus memiliki paling sedikit 3 buah simpul
BantuWhile bantu^.next^.info<>key do
Bantu = bantu^.Next
E-while
Bantu = awal
Hapus = bantu^.next
Dispose(hapus)
Read key (key=40)Hapus
Bantu^.next = hapus^.next
10
Travelsal/mengunjungi simpul
1. Mencetak isi semua simpul
P B M K I M A
Awal
Bantu Bantu = awal
While bantu <> nil do
Write Bantu^.info
Bantu= bantu ^.next
E-while
11
Travelsal/mengunjungi simpul
1. Mencetak isi semua simpul
P B M K I M A
Awal
Bantu
While bantu <> nil do
Write Bantu^.info
Bantu= bantu ^.next
E-while
12
Travelsal/mengunjungi simpul
1. Mencetak isi semua simpul
P B M K I M A
Awal
Bantu
While bantu <> nil do
Write Bantu^.info
Bantu= bantu ^.next
E-while
Bantu Bantu Bantu Bantu Bantu
13
Travelsal/mengunjungi simpul
2. Mencari elemen dalam List
P B M K I M A
Awal
Bantu
While bantu <> nil and temu = false do
If key = bantu^.info then
temu = true
fi
Bantu= bantu ^.next
E-while
Bantu Bantu Bantu Bantu Read key, Bantu = awal, temu = false
If temu then
Data ditemukan
Else
Data tidak ditemukan
fi
Key= I
14
quiz
60 20 70 10 50
awal
Buat algoritma untuk mencari data terbesar dalam list
15
Mencari rata-rata
Bantu = awalWhile bantu <>nil do Total = total + Bantu^.info jumlah = jumlah + 1 bantu = bantu^.nextE-whileRata = total/jumlah