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