Postingan

Menampilkan postingan dari Maret, 2020

Binary Search Tree

Gambar
Binary Search Tree merupakan struktur data yang mendukung pencarian dan sorting yang cepat, dan juga memudahkan insertion dan deletion. Binary Search Tree disebut juga Binary Tree yang sudah disorting. Dalam sebuah node pada Binary Search Tree: - Subtree kiri terdiri atas elemen yang lebih kecil - Subtree kanan terdiri atas elemen yang lebih besar Operasi dalam Binary Search Tree - find(x) = menemukan x dalam BST - insert(x) = memasukkan elemen baru ke dalam BST - remove(x) = menghapus elemen x dari BST Operasi: Search - Mulai pencarian dari root - Jika root merupakan elemen yang kita cari, maka pencarian selesai - Jika x lebih kecil root, lakukan pencarian secara rekursif ke bagian kiri sub tree BST, begitu pula jika lebih besar, lakukan pencarian secara rekursif ke bagian kanan sub tree BST. Itu berlaku untuk pencarian ke node berikutnya. Operasi: Insertion - Mulai dari root - Jika x lebih kecil node's key, kemudian masukkan x ke sub tree kiri, jika lebih b

Hashing dan Hash Tables, Trees, dan Binary Trees (Week 4)

Gambar
Pada pertemuan sebelumnya, saya telah mempelajari Linked List, yang dimana merupakan kumpulan data dinamis yang saling terhubung antar satu sama lain. Terdapat single linked list, double linked list, circular single linked list, dan circular double linked list. Untuk materi kali ini, linked list juga akan terpakai dalam hashing dan binary trees. HASHING DAN HASH TABLE Hashing merupakan teknik mengubah setiap record menjadi angka (hash). Kumpulan dari karakter dalam sebuah record diubah dalam bentuk yang lebih pendek (kata kunci) yang merepresentasikan kumpulan karakter itu sendiri. Keunggulan hashing ini adalah waktu aksesnya yang cukup cepat sehingga waktu yang dibutuhkan dalam penambahan, penghapusan, dan pencarian lebih singkat. Jadi, hashing ini mendistribusikan kunci-kunci dalam sebuah array yang disebut hash table, dengan menggunakan fungsi-fungsi yang disebut hash function. Contoh hash table: Misalkan kita ingin menyimpan nama mahasiswa berupa: Doni, Andi, B

Linked List (Week 3)

Review Linked List Hari ini saya mempelajari codingan dari linked list (push dan pop). Untuk push, berarti membuat list baru, yang dipelajari kali ini adalah push belakang, baik untuk single linked list maupun double linked list. struct node{ int value; struct node *next, *prev; }*head, *curr, *tail; void pushBelakangSingle(int value){ curr = (struct node *) malloc(sizeof(struct node)); curr->value = value; if(head == NULL){ head = tail = curr; } else{ tail->next = curr; tail = curr; } curr->next = NULL; } Penjelasan (Push Belakang Single Linked List) Untuk membuat list baru, kita harus memesan memori terlebih dahulu dan memberikan nilai pada node curr. Kemudian, untuk menentukan apakah list ini merupakan list pertama atau bukan, maka kita mengecek apakah head merupakan NULL, jika iya, maka kita tinggal head = tail = curr, karena merupakan list pertama, sehingga secara otomatis, list tersebut merupak