1 Pertemuan 3 Data Komposit Linked list Matakuliah: T0026/Struktur Data Tahun: 2005 Versi: 1/1
2 Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : Mahasiswa dapat menghasilkan program modular yang menggunakan singly linked list
3 Outline Materi Alokasi memori dinamis Pointer Singly-linked list Operasi linked list contoh program linked list circular singly linked-list
Definisi Linked list Linked List : struktur data yg terdiri dr bbrp node yang saling dikaitkan secara linear dengan bantuan pointer Node dialokasikan secara dinamik Tipe data node : struct Jumlah pointer pengait node –1(satu): single linked list –2 (dua): double linked list –>2 (lebih dari dua): multiple
Single Linked List (LL) Contoh deklarasi tipe node struct nodemhs { charnama[10]; floatip; struct nodemhs*next; } Contoh deklarasi pointer penunjuk Awal LL struct nodemhs*head; Pointer head digunakan untuk mengakses data dalam LL. Akses harus dimulai dari node pertama (sequential)
Pointer head perlu diinisialisasi head = NULL; NULL head
Pembentukan node baru struct nodemhs*p, *curr; //deklarasi variabel pointer p = (struct nodemhs*)malloc(sizeof…); strcpy (p->nama, “Dewi”); p->ip = 4.0; p->next = NULL; pnamaip Dewi 4.0 NULL next
Pengaitan node baru ke LL –Jika LL masih kosong –Pengaitan ke awal LL –Pengaitan ke akhir LL –Penyisipan pada posisi tertentu
-Jika LL masih kosong if (head ==NULL) head = p; head namaip Dewi 4.0 NULL next pnamaip Dewi 4.0 NULL next NULL head
- Pengaitan ke awal LL p->next = head; head = p; Misalkan ada node baru p Maka LL menjadi pnamaip Tono 3.8 NULL next head namaip Dewi 4.0 NULL next namaip Tono 3.8 next
- Pengaitan ke akhir LL //cari node terakhir curr = head; while (curr->next != NULL) curr=curr->next; //pasang kait ke node p curr->next = p; head namaip Dewi 4.0 next namaip Tono 3.8 nextnamaip Ani 3.7 NULL next namaip Ani 3.7 NULL next p head namaip Dewi NULL next 4.0 namaip Tono 3.8 next curr
- Penyisipan pada pointer list head namaip Dewi 4.0 next namaip Tono 3.8 nextnamaip Ani 3.7 NULL next namaip Andi 3.9 NULL next p list p->next = list->next; list->next = p;
Penghapusan node curr = head; while (curr->next != list) curr=curr->next; curr->next = list->next; free(list); head namaip Dewi 4.0 next namaip Tono 3.8 nextnamaip Ani 3.7 NULL next listcurr
Circular Single Linked List head namaip Dewi 4.0 next namaip Tono 3.8 nextnamaip Ani 3.7 next Pointer next di node terakhir selalu menunjuk ke node awal LL
15