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 n; //pointer ke node selanjutnya struct node *next; }; typedef struct node node;
Operasi dasar linked list Menambah sebuah node. Menghapus sebuah node. Mencari sebuah node. List tranversal
Menambahkan node ke list kosong Before: Code: pNew -> next = pNew; pList = pNew;// point list to first node After: 39 pNew pList pPre 39 pNew pList pPre
Menambahkan node di tengah list Before: Code pNew -> next = pPre -> next; pPre -> next = pNew; After: 64 pNew pPre 55 124 pNew 64 55 124 pPre
Latihan : bagaimana menyisipkan node sebelum pList? Before: Code ? After ? 39 pNew pList pPre 75 124
Menghapus node pertama dari linked list Before: Code: pPre -> next = pCur->next; pList = pList->next; free(pCur); After: pList pPre 75 124 pCur pList Recycled 124 pPre pCur
Menghapus node dari linked list – kasus umum Before: Code: pPre -> next = pCur -> next; free(pCur); After: 75 124 96 pPre pCur 75 124 Recycled pPre pCur