- Linked List adalah salah satu bentuk struktur data, berisi kumpulan data (node) yang tersusun secara sekuensial, saling sambung-menyambung, dinamis dan terbatas
- Linked List sering disebut juga Senarai Berantai
- Linked List saling terhubung dengan bantuan variabel pointer
- Masing-masing data dalam Linked List disebut dengan node (simpul) yang menempati alokasi memori secara dinamis dan biasanya berupa struct yang terdiri dari beberapa field
Array
- Statis
- Penambahan / Penghapusan data terbatas
- Random Access
- Penghapusan Array tidak mungkin
- Dinamis
- Penambahan / Penghapusan data bebas
- Sequential Access
- Penghapusan linked list mudah
Bentuk Single Linked List
Pengertian:
Single : artinya field pointer-nya hanya satu buah saja dan satu arah serta pada akhir node, pointernya menunjuk NULL
- Linked List : artinya node-node tersebut saling terhubung satu sama lain.
- Setiap node pada linked list mempunyai field yang berisi pointer ke node berikutnya, dan juga memiliki field yang berisi data.
- Node terakhir akan menunjuk ke NULL yang akan digunakan sebagai kondisi berhenti pada saat pembacaan isi linked list.
Pembuatan Single Linked List
Deklarasi Node
Penjelasan:
- Pembuatan struct bernama TNode yang berisi 2 field, yaitu field data bertipe integer dan field next yang bertipe pointer dari TNode
- Setelah pembuatan struct, buat variabel head yang bertipe pointer dari TNode yang berguna sebagai kepala linked list.
- Digunakan keyword new yang berarti mempersiapkan sebuah node baru berserta alokasi memorinya, kemudian node tersebut diisi data dan pointer nextnya ditunjuk ke NULL.
Latihan :
#include
#include
#include
typedef struct Node
{
int data;
Node* next;
};
// only for the 1st Node
void initNode(Node *head,int n)
{
head->data = n;
head->next =NULL;
}
// apending
void addNode(Node *head, int n)
{
Node *newNode = new Node;
newNode->data = n;
newNode->next = NULL;
Node *cur = head;
while(cur)
{
if(cur->next == NULL)
{
cur->next = newNode;
return;
}
cur = cur->next;
}
}
void display(Node *head)
{
Node *list = head;
while(list) {
printf(" %d ", list->data);
list = list->next;
}
printf("\n");
printf("\n");
}
int main()
{
Node *newHead;
Node *head = new Node;
initNode(head,10);
display(head);
addNode(head,20);
display(head);
getch();
return 0;
}
0 komentar:
Posting Komentar