circular linked list

Algoritma dan Struktur Data
Circular Linked List

Struktur Circular Linked List
pList
A

B

C

 Node terakhir menunjuk node pertama
 Setiap node terdiri atas
 Isi data
 Next, yaitu pointer ke node selanjutnya
pada list

Struktur Sebuah Node
struct node {
//bagian data
tipedata data 1;

tipedata data 2;

tipedata data n;
//pointer ke node selanjutnya
struct node *next;
};
typedef struct node node;

Operasi dasar linked list
1.
2.
3.
4.

Menambah sebuah node.
Menghapus sebuah node.
Mencari sebuah node.
List tranversal

Menambahkan node ke list kosong

Before:
pNew

Code:
pNew -> next = pNew;

39

pList = pNew;// point list to first node

pList

pPre

After:
pNew
pList

pPre


39

Menambahkan node di tengah list
Before:

Code
pNew -> next = pPre -> next;

pNew

pPre -> next = pNew;

64

55

124

pPre


After:
pNew

64

55
pPre

124

Latihan : bagaimana menyisipkan node
sebelum pList?
Before:
pNew
pList

pPre

After ?


Code ?
39

75

124

Menghapus node pertama dari linked list
Before:

Code:

pList

pPre

75

pPre -> next = pCur->next;
pList = pList->next;

free(pCur);

124

pCur

After:
pList

pPre

Recycled

pCur

124

Menghapus node dari linked list – kasus umum
Before:


Code:

75

96

pPre -> next = pCur -> next;
free(pCur);

124

pCur

pPre

After:
Recycled

75


pPre

pCur

124