Tentang Linked List
![](http://img2.blogblog.com/img/icon18_edit_allbkg.gif)
https://im-informatika.blogspot.com/2015/05/tentang-linked-list.html
Linked List merupakan struktur data yang terdiri dari beberapa node yang saling dikaitkan secara linear dengan bantuan pointer.
Node dialokasikan secara dinamik. Tipe data node berupa struct
Contoh deklarasi pointer penunjuk Awal LL
Pointer head digunakan untuk mengakses data dalam LL. Akses harus dimulai dari node pertama (sequential)
Pointer head perlu diinisialisasi
![Inisialisai Pointer Head Inisialisai Pointer Head](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSi-VoHjkmJbTUiUzJjwMIa-v7q1pYqW8UcnZOJn15a0r7v3omcYjj5_Zy-4FAYc0cmrec1ZZYKbkfUfQ5clD0ynHLb2hmUL8qcp37jCsb2lVzOtwgHMW3AE5vHjLgpCBHLNozJXQtWUE/?imgmax=800)
Pembentukan node baru
![pembentukan node baru pembentukan node baru](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfccyyZKTWhP_GamWWD-X0IdUzYImMyFrK578cs853jLgknjYOdFJrR7DbzorV4rGGeC_WCIpomsXFPQ5eVQ8UNMNqFyo-GfZxIqCvkOQNoWwX-CYig6NwMkkD02YEOrI1X2ExDbX_2DM/?imgmax=800)
Beberapa jenis pengaitan node baru ke Linked List :
Contoh pengaitan node ke Linked List yang masih kosong
Contoh pengaitan node ke awal Linked List
Misalkan ada node baru p
Maka LL menjadi
Contoh pengaitan node ke akhir Linked List
Contoh pengaitan node ke posisi tertentu Linked List
Contoh penghapusan Linked List
Pointer next di node terakhir selalu menunjuk ke node awal Linked List
Contoh program Linked List bisa dibaca disini
Node dialokasikan secara dinamik. Tipe data node berupa struct
Jenis – jenis Linked List menurut jumlah pointer pengait node :
- 1 (satu) pengait node : single linked list
- 2 (dua) pengait node : double linked list
- > 2 (lebih dari dua) pengait node : multiple
Single Linked List (LL)
Contoh deklarasi tipe nodestruct nodemhs { char nama[10]; float ip; 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;
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;
Pengaitan node baru ke LL
Beberapa jenis pengaitan node baru ke Linked List :
Jika LL masih kosong
Contoh pengaitan node ke Linked List yang masih kosong
if (head ==NULL) head = p;
Pengaitan ke awal LL
Contoh pengaitan node ke awal Linked List
p->next = head; head = p;
Misalkan ada node baru p
Maka LL menjadi
Pengaitan ke akhir LL
Contoh pengaitan node ke akhir Linked List
- Cari node terakhir
curr = head; while (curr->next != NULL) curr=curr->next;
- Pasang / kaitkan ke p
curr->next = p;
Penyisipan pada posisi tertentu
Contoh pengaitan node ke posisi tertentu Linked List
p->next = list->next; list->next = p;
Penghapusan Node
Contoh penghapusan Linked List
curr = head; while (curr->next != list) curr=curr->next; curr->next = list->next; free(list);
Circular Single Linked List
Pointer next di node terakhir selalu menunjuk ke node awal Linked List
Contoh program Linked List bisa dibaca disini