Algoritma dan Struktur Data Doubly Linked List p

Algoritma dan Struktur Data Doubly Linked List

p. Head 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. Ø p. Head : pointer yang menunjuk node pertama

p. Head 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 1; tipedata 2; … tipedata n; //pointer ke node sebelum dan sesudahnya struct node *prev; struct node *next; }; typedef struct 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: p. New = (node *) /*create node*/ malloc(sizeof(node)); p. New -> data = 39; p. New -> next = p. Head; p. New -> prev= p. Head; p. Head = p. New; 39 p. Head p. Cur p. New After: p. Head p. Cur 39

Menambah Node Di Tengah Doubly-Linked List Before: p. New 64 55 124 p. Cur After: p. New 64 55 p. Cur 124

Menambah Node Di Akhir Doubly Linked List Before: p. New 84 55 74 p. Cur After: p. New 84 55 p. Cur 74

Menghapus Node Pertama Doubly-Linked List Before: Code: p. Head 75 p. Head = p. Cur ->next; p. Cur ->next ->prev = NULL; free(p. Cur); 124 p. Cur After: p. Head Recycled p. Cur 124

Menghapus Node Pertama Doubly-Linked List Kasus umum Before: 75 23 12477 46 p. Cur After: 75 Recycled 23 p. Cur 77 124

Tugas § Modifikasilah code single linked list menjadi doubly linked list.
- Slides: 12