Langsung ke konten utama

Rangkuman

SUMMARY
Nama saya Rahadi Fauzan Ramadhan dan pada kesempatan kali ini saya akan membagikan rangkuman materi yang sudah saya pelajari selama ini.

LINKED LIST

1. Circular Singly Linked List
Dalam Circular Singly Linked List, dapat disimpulkan bahwa setiap node pada Linked List mempunyai field yang berisi pointer ke node berikutnya, dan field yang berisi data. Pada akhir Linked List, node terakhir akan menunjuk ke node pertama sehingga Linked List tersebut mengalami pengulangan dan begitu seterusnya.


2. Doubly Linked List
Dalam Doubly Linked List, dapat disimpulkan bahwa setiap node pada Linked List mempunyai field yang berisi data dan pointer ke node berikutnya dan ke node sebelumnya. Untuk pembentukan node baru, pointer dibagi menjadi dua, yaitu next dan prev, next akan menunjuk ke node berikutnya, dan prev akan menunjuk ke node sebelumnya.


3. Circular Doubly Linked List
Dalam Circular Doubly Linked List, dapat disimpulkan bahwa pada dasarnya sama saja dengan Doubly Linked List, tapi pada Circular Doubly Linked List, node akhir akan menunjuk lagi ke node pertama, sehingga Linked List tersebut mengalami pengulangan.


Pada linked list, terdapat istilah push dan pop, dimana push berarti insert data baru pada linked list tersebut, dimana kita bisa push dari depan, belakang, atau dari tengah. Sedangkan pop berarti mendelete data, data dari depan, tengah, dan juga belakang.

Dikarenakan saya belum paham sepenuhnya, berikut 2 contoh sc untuk single linked list yang saya dapat dari pertemuan tadi, namun sebelum membuat push dan pop, pertama-tama kita perlu membuat struct terlebih dahulu:

struct Data

{
    int value;
    struct Data *next,*prev;
}*head,*curr,*tail;

Push
void push(int a)
{
    curr = (struct Data*)malloc(sizeof(struct Data));
    curr->value = a;
    
    if(head==NULL){
        head = tail = curr;
    }
    else{
        tail->next = curr;
        curr->prev = tail;
        tail = curr;
    }
    head->prev = tail->next = NULL;
}

Pop
void pop2()
{
    if(tail == head){
        free(curr);
        tail = head = curr = NULL;
    }
    else
    {
        tail = tail->prev;
        free(tail->next);
        tail->next = NULL;
    }
}

NOTE : free() perlu digunakan untuk pembebasan memory yang tidak dipakai lagi setelah dipesan melalui malloc.

Hashing Table
Hash Table adalah sebuah struktur data yang digunakan untuk menyimpan data sementara. Hash Table menggunakan fungsi untuk memperhitungkan index ke dalam array dimana akan terdapat elemen yang bisa dimasukkan atau dicari.


Binary Tree
Salah satu fitur yang sering digunakan di data struct adalah Tree (Binary Tree). Binary Tree digunakan untuk mewakili struktur data nonlinear

Binary Search Tree 
Binary Search Tree adalah struktur data yang mengambil konsep Binary Tree namun terdapat aturan bahwa setiap child node sebelah kiri selalu lebih kecil nilainya dari pada root node. Begitu pula sebaliknya, setiap child node sebelah kanan selalu lebih besar nilainya daripada root node.



Komentar