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