Skip to main content

Posts

Showing posts from March, 2020
B inary Search Tree Binary Search Tree merupakan sebuah konsep penyimpanan data, dimana data disimpan dalam bentuk tree yang setiap node dapat memiliki anak maksimal 2 node. Selain itu, terdapat juga aturan dimana anak kiri dari parent selalu memiliki nilai lebih kecil dari nilai parent dan anak kanan selalu memiliki nilai lebih besar dari parent. Binary Search Tree adalah struktur data pohon biner berbasis node yang memiliki properti berikut: Subtree kiri dari sebuah node hanya berisi node dengan kunci lebih rendah dari kunci node. Subtree kanan sebuah node hanya berisi node dengan kunci lebih besar dari kunci node. Subtree kiri dan kanan masing-masing juga harus berupa pohon pencarian biner. Binary Search Tree memiliki 3 oprasi dasar, yaitu : Find(x)     : find value x didalam BST ( Search ) Insert(x)   : memasukan value baru x ke BST ( Push ) Remove(x)  : menghapus key x dari BST ( Delete ) Search BST Bayangkan kita akan mencari value X. Memulai
Hashing Tables & Binary Tree Hashing Hashing adalah teknik yang digunakan untuk menyimpan dan mengambil kunci dengan cepat. Hashing digunakan untuk mengindeks dan mengambil item dalam database karena lebih cepat menemukan item menggunakan kunci hash yang lebih pendek daripada menemukannya menggunakan nilai asli. Hash Table Tabel hash adalah tabel (larik) tempat kami menyimpan string asli. Indeks tabel adalah kunci hash sementara nilainya adalah string asli. Ukuran tabel hash biasanya beberapa urutan besarnya lebih rendah dari jumlah total string yang mungkin, sehingga beberapa string mungkin memiliki kunci hash yang sama. Misalnya, ada 267 (8.031.810.176) string dengan panjang 7 karakter terdiri dari huruf kecil saja. Operasi Pada Hash Tabel -  insert: diberikan sebuah key dan nilai, insert nilai dalam tabel -  find: diberikan sebuah key, temukan nilai yang berhubungan dengan key -  remove: diberikan sebuah key,temukan nilai yang berhubungan dengan key  -  getIte
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{