Kamis, 19 November 2015

Linked List

  • 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
 Perbedaan Array VS. Liked List
Array
  • Statis
  • Penambahan / Penghapusan data terbatas
  • Random Access
  • Penghapusan Array tidak mungkin
Linked List
  • 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