Posts

Showing posts from March, 2020

Binary Search Tree

Image
Binary Search Tree merupakan suatu struktur data binary tree yang menggunakan node sebagai dasarnya seperti halnya dengan linked list. Namun, BST ini digunakan untuk Fast Searching, Rapid Sorting, Easy Insertion, dan Deletion Data. Pada dasarnya, subtree sebelah kiri akan memiliki node yang nilainya lebih kecil daripada parent node, sedangkan sebelah kanan berisikan node yang memiliki nilai lebih tinggi daripada parent node. Searching Dalam mencari suatu nilai pada BST, pertama akan dibandingkan dengan nilai root, jika nilai yang dicari berada pada root, maka root adalah nilai yang dicari, namun jika nilai yang dicari lebih besar daripada root, maka akan mencari subtree sebelah kanan dari root node. Sebaliknya jika nilai yang dicari lebih kecil maka akan mencari subtree sebelah kiri dari root node. Insertion Memasukkan sebuah nilai baru pada binary tree akan selalu masuk ke bagian paling bawah (leaf). Dimulai dengan mencari nilai root sampai ke leaf node, dan jika nilai ya

Hashing table & Binary Tree

Image
Hashing Table Hashing adalah sebuah cara untuk mengetahui objek secara spesifik dari kumpulan objek yg mirip. Sedangkan Hash Table adalah sebuah struktur data yang terdiri atas sebuah tabel dan fungsi yang bertujuan untuk memetakan nilai kunci yang unik untuk setiap record (baris) menjadi angka (hash) lokasi record tersebut dalam sebuah tabel. Operasi pada hash table: 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, kemudian hapus nilai tersebut getIterator: mengambalikan iterator,yang memeriksa nilai satu demi satu Contoh deklarasi hash table dalam coding: HASHTBL *hashtbl_create(hash_size size, hash_size (*hashfunc)(const char *)) { HASHTBL *hashtbl; if(!(hashtbl=malloc(sizeof(HASHTBL)))) return NULL; free(hashtbl); return NULL; } hashtbl->size=size; if(hashfunc) hashtbl->hashfunc=hash

Push and Pop Linked List

Review 3 Maret 2020 Dari materi yang diajarkan di kelas besar pada tanggal 3 Maret 2020, saya mempelajari cara menggunakan push dan pop dalam singly dan double linked list. Push: Insert elemen ke dalam linked list Pop: Kebalikannya push, menghilangkan elemen dari linked list Contoh codingan pop pada singly linked list: void pop() { curr = head; while(curr->next!=tail){ curr = curr->next; } free(tail); tail = curr; tail->next = NULL; } Contoh codingan push pada double linked list: 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; } tail->next = NULL; } Contoh codingan pop pada double linked list: void pop2() { if(tail == head){ free(curr); tail = head = curr = NULL; } else { tail = tail->prev; free(tail->next); tail->next = NUL