Skip to main content
Doubly Linked List 


Doubly Linked List 
adalah elemen-elemen yang dihubungkan dengan dua pointer dalam satu elemen dan list dapat melintas baik di depan (head) atau belakang (tail).Doubly Linked List berisi pointer tambahan, biasanya disebut pointer sebelumnya, bersama dengan pointer berikutnya dan data yang ada di Single Linked List. 

Elemen-Elemen Dalam Doubly Linked List  
Data
- Pointer Next ( *next )
- Pointer Prev ( *prev )


Doubly Linked List: Insertion
Sebuah node dapat ditambahkan dengan empat cara:
- Di bagian depan Doubly Linked List
- Setelah node yang diberikan
- Di bagian belakang Doubly Linked List
- Sebelum node yang diberikan

InsertionFront (push depan)
void insertFront(int num){
         struct data *curr = (struct data *)malloc(sizeof(struct data));
        curr->num = num;
        curr->next = NULL;
        if(head == NULL){
                    head = tail = curr;
                    head->prev = NULL;
        }else{
                 curr->next = head;
                 head->prev = curr;
                 head = curr;
        }
}

InsertionBack (push belakang)
void insert Back(int num){
         struct data *curr = (struct data *)malloc(sizeof(struct data));
        curr->num = num;
        curr->next = NULL;
        if(head == NULL){
                    head = tail = curr;
                    head->prev = NULL;
        }else{
                 tail->next = curr;
                 curr->prev =tail;
                 tail = curr;
        }
}

Doubly Linked List: Delete
4 hal yang harus diperhatikan saat melakukan delete:
- Node yang akan dihapus adalah satu-satunya node dalam Linked List.
- Node yang akan dihapus adalah head.
- Node yang akan dihapus adalah tail.
- Node yang akan dihapus bukan head atau tail

DeleteFront (pop depan)
void deleteFront(){
             struct data *curr = head;
             if(curr){
                       head = head->next;
                       free(curr);
                       head->prev = NULL;
             }
}

DeleteBack (pop belakang)
void deleteBack(){
             struct data *curr = head;
             if(curr){
                       tail = tail->prev;
                       free(curr);
                       tail->next = NULL;
             }
}





Comments

Popular posts from this blog

Data Structure Linked List (II) Circular Linked List  Circular Linked List adalah  Linked List  di mana semua node terhubung untuk membentuk lingkaran.  Tidak ada NULL di bagian akhir.  Circular Linked List  dapat berupa  Circular  Single Linked List atau  Circular  Doubly Linked List. Circular Doubly Linked List  Circular Doubly Linked List   adalah jenis yang lebih kompleks dari Linked List yang berisi pointer ke node berikutnya serta sebelumnya dalam urutan. Sama seperti dengan Circular Single Linked List, tetapi total pointer pada setiap node adalah 2 pointer. Doubly Linked List  Doubly Linked List  adalah elemen-elemen yang dihubungkan dengan dua pointer dalam satu elemen dan list dapat melintas baik di depan (head) atau belakang (tail). Doubly Linked List berisi pointer tambahan, biasanya disebut pointer sebelumnya, bersama dengan pointer berikutnya dan data yang ada di Single Linked List. Elemen-Elemen Dalam Doubly Linked List    -  Data - Pointer Next