Skip to main content

Posts

Showing posts from March, 2020

Binary Search Tree

Binary Search Tree        -         Pengertian       Binary search tree (BST) adalah sebuah data struktur yang digunakan untuk mempercepat        searching, sorting, insertion dan deletion.       BST juga dikenal sebagai binary tree yang sudah disortir       Untuk sebuah node x dari BST : è Value di subtree kiri lebih kecil dari value dalam x è Value di subtree kanan lebih besar dari value dalam x       -         Binary search tree operations       BST mempunyai beberapa operasi : è Search(x) : untuk mencari key x di dalam BST Misalnya kita ingin mencari key x : o    Pertama kita mulai dari root o    Jika root adalah x maka proses selesai o    Jika x lebih kecil dari key root maka dilakukan searching secara rekursif di subtree sebelah kiri, begitu pula sebaliknya Berikut adalah source codenya : struct node* search(struct node* root, int x) {     if (root == NULL || root->key == x)        return root;            if (root->key &

Hashing Table & Binary Tree

   1.       Hashing and Hash Table ·         Hashing Hashing adalah sebuah teknik untuk menyimpan data   dengan menggunakan index (key) dari string tersebut. Fungsi hashing adalah untuk mendapat index (key) untuk menentukan lokasi data. Contoh Hashing : Misalkan kita ingin menyimpan 5 data string : “define”,”float”,”exp”,”char”,”atan” ke dalam hash table dengan size 26. Hash function yang kita gunakan adalah mengubah karakter pertama dalam string tersebut menjadi angka antara 0 sampai 25. Hasilnya : - define “d” = 3 - float “f” =   5 - exp “e” = 4 - char “c” = 2 - atan “a” = 0                ·         Hash Table Hash table adalah sebuah tabel / array dimana kita menyimpan string / data kita. Index dari tabel adalah hashed key, sedangkan value (isi) di dalamnya adalah value dari data kita. Contoh Hash Table : 5 string yang sudah dihashing akan disimpan sesuai nilai key yang didapatkan. Kita cuma memakai karakter pertama dari string. -         atan disimpan di

Session 4 - Coding Single & Double Linked List + Resources

Di session 4 hari ini, belajar tentang coding single dan double linked list. Karena di session 3 sudah ada codingan tentang linked list, saya tinggal menambahkan beberapa hal yang belum disebut di post session 3. Jadi linked list itu adalah bentuk lebih sempurna dari array, linked list seperti namanya artinya setiap node-node saling berhubungan melalui pointer yang menunjuk alamat node lain. struct node *node =   (struct node*) malloc(sizeof(struct node)); Malloc(memory allocation) itu merupakan fungsi untuk mengalokasi memori yang diikuti dengan sizeof. Beda dengan array, di linked list kita tidak perlu deklarasi terlebih dahulu size dari struct kita berapa, melainkan ketika ingin menambah data baru tinggal dibuat node baru.  Untuk return value dari node pointer adalah dengan typecast agar bisa mengakses data yang disimpan dalam buffer(tempat penyimpanan sementara) yang dialokasikan. Kegunaan malloc adalah mengembalikan pointer kesejumlah n byte ruang memori yang belum diinisi