Algoritma dan Struktur Data Doubly Linked List pHead Struktur Doubly Linked List A B C Node-node doubly linked list saling berkait melalui pointer. Bagian prev sebuah node menunjuk node selanjutnya. Bagian next sebuah node menunjuk node sesudahnya. pHead : pointer yang menunjuk node pertama pHead Struktur Doubly Linked List A B C Setiap node terdiri atas prev, yaitu pointer yang menunjuk ke node sebelumnya pada list Data next, yaitu pointer yang menunjuk ke node sesudahnya pada list prev node pertama bernilai NULL next node terakhir bernilai NULL Struktur Sebuah Node Doubly Linked List Setiap node terdiri atas prev, yaitu pointer yang menunjuk ke node sebelumnya pada list Data next, yaitu pointer yang menunjuk ke node sesudahnya pada list prev data next Struktur Sebuah Node Doubly Linked List struct node { //bagian data tipedata data 1; tipedata data 2; … tipedata data n; //pointer ke node sebelum dan sesudahnya struct node *prev; struct node *next; }; typedef struct node node; Operasi Doubly Linked List 1. 2. 3. 4. Menambah sebuah node pada doubly linked list. Menghapus sebuah node dari doubly linked list. Mencari node pada doubly linked list. List tranversal Menambah Node ke Doubly-Linked List Kosong Initial: Code: pNew pNew = (node *) /*create node*/ malloc(sizeof(node)); pNew -> data = 39; pNew -> next = pHead; pNew -> prev= pHead; pHead = pNew; 39 pHead pCur pNew After: pHead pCur 39 Menambah Node Di Tengah Doubly-Linked List Before: pNew 64 55 124 pCur After: pNew 64 55 pCur 124 Menambah Node Di Akhir Doubly Linked List Before: pNew 84 55 74 pCur After: pNew 84 55 pCur 74 Menghapus Node Pertama Doubly-Linked List Before: Code: pHead 75 pHead = pCur ->next; pCur ->next ->prev = NULL; free(pCur); 124 pCur After: pHead Recycled pCur 124 Menghapus Node Pertama Doubly-Linked List Kasus umum Before: 75 23 12477 46 pCur After: 75 Recycled 23 pCur 77 124 Tugas Modifikasilah code single linked list menjadi doubly linked list.