Skip to main content

Posts

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...
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 k...
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(...

Data Structures

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-...