DIG1G3 Implementasi Struktur Data

advertisement
DIG1G3
Implementasi Struktur Data
Program Studi Diploma III Teknik Informatika
Fakultas Ilmu Terapan
Telkom University
Dosen: Cahyana, S.T., M.Kom.
Indra Azimi, S.T., M.T.
Tujuan Pertemuan 5 - 6
• Mahasiswa mengetahui operasi yang dapat
dilakukan pada singly linked list:
▫
▫
▫
▫
▫
Insert list
Delete
Update
View
Search
3
Singly Linked List – Insert Tengah
• Banyak cara -> salah satunya insert after
• Insert node baru sesudah node dengan nilai tertentu
• Menggunakan berapa pointer bantuan?
tail
Misal, newNode akan diinsert sesudah node
dengan info = 92
4
Singly Linked List – Insert Tengah
•
•
•
•
Node baru akan dimasukkan antara node dengan info 92 dan 63
Bagian link dari node 92 dihubungkan dengan node baru
Bagian link dari node baru dihubungkan dengan node 63
Menggunakan berapa pointer bantuan?
▫
Bagaimana cara mengetahui alamat dari node 92?
tail
Singly Linked List – Insert
• Membuat node baru:
nodeType* nodeBaru (int x){
nodeType *newNode = new nodeType;
newNode->info = x;
newNode->link= NULL; //selalu menunjuk NULL
return newNode;
}
• Tail adalah variabel pointer dengan tipe yang sama
dengan head.
nodeType *tail;
info
Link, buat menunjuk NULL
6
Singly Linked List - Delete
• Ketika membuat node, kita “memesan” satu bagian
tertentu pada memori
• Jika node tersebut sudah tidak digunakan, maka kita
harus “membebaskan” bagian memori yang sudah tidak
dibutuhkan tersebut
▫ Jika tidak -> memory leak
▫ Berbeda dengan variabel biasa
• Gunakan:
free
delete
7
Singly Linked List - Deleted
• Kemungkinan yang dapat terjadi:
▫
▫
▫
▫
Node yang akan dihapus merupakan node pertama
Node yang akan dihapus merupakan node terakhir
Node yang akan dihapus merupakan node tengah
Node yang akan dihapus tidak ada
Singly Linked List - Deleted
• Deleted depan
▫ Node paling depan terhapus
▫ Bagaimana dengan head?
current
head = current -> link;
delete current;
Urutan proses
boleh dibalik?
Singly Linked List - Deleted
• Deleted belakang
▫ Node paling belakang terhapus
▫ Bagaimana dengan tail?
• Deleted tengah
▫ Bagaimana cara mengetahui node yang tepat?
▫ Berapa pointer bantuan yang dibutuhkan?
10
Reference
• DS Malik, Data Structures Using C++, 2nd
Edition
• The Linked List ADT - CS 1037a --Topic 11
• P.S.Deshpande dan O.G. Kakde, C & Data
Structure, Charles River Media, Inc.
Massachusetts
Download