Posts

Showing posts from March, 2020

Binary Search Tree

Image
Binary Search Tree adalah sebuah data structure binary tree yang memiliki ciri-ciri, yaitu: subtree sebelah kiri nilainya lebih kecil dari parent nodenya dan subtree sebelah kanan nilainya lebih besar dari parent nodenya. https://www.geeksforgeeks.org/binary-search-tree-set-1-search-and-insertion/ Terdapat 3 cara dalam traverse binary tree (dilakukan secara rekursi): In-order Yaitu subtree kiri dilalui terlebih dahulu lalu ke root dan ke subtree kanan. Pre-order Yaitu root yang dilalui terlebih dahulu lalu subtree kiri dan kanan. Post-order Yaitu subtree kiri dan kanan dilalui terlebih dahulu lalu root. https://www.tutorialspoint.com/data_structures_algorithms/tree_traversal.htm Berikut adalah contoh Binary Search Tree : #include <stdio.h> #include <stdlib.h> #include <string.h> #include <malloc.h> struct Node{ int id; char name[100]; struct Node *left, *right; }; struct Node *createNode(int id, char

Hashing Table & Binary Trees

Image
Hashing Table & Binary Trees Hashing Table Adalah data structure mengelompokkan objek dalam kelompok sama. Dalam hashing sebuah string panjang akan di ubah ke dalam key yang merupakan index pada hash table, menggunakan hash function untuk mendapatkan key tersebut. Misalnya untuk mendapatkan informasi mahasiswa kita hanya perlu NIM, karna kata kunci yang banyak maka diperlukan hashing agar lebih cepat. Intinya Hashing adalah mentransformasi string panjang menjadi sebuah key dan index untuk mencari suatu infromasi di database . Hash Function Mid-square Dalam teknik ini untuk mendapatkan key-nya,dilakukan pangkat dua pada valuenya kemudian kita bisa mengambil nilai tengah dari hasilnya. Teknik ini memiliki kemungkinan collision yang kecil karena key yang dihasilkan cukup unik. Overflow bisa terjadi misalnya pada perpangkatan 6 digit menjadi 12 digit, maka perlu menggunakan tipe data long long int atau string.   Contoh: kita ambil 4 digit angka yaitu 1234.

Linked List Review and Operation of Single Linked List

Linked List Review and Operation of Single Linked List Pada hari ini saya mempelajari operasi pada linked list yaitu single linked list yang sudah kita ketahui pertemuan sebelumnya bahwa single linked list hanya mempunya satu pointer yaiut *next yang menunjuk ke node selanjutnya. Operasi pada linked list yang saya pelajari hari ini adalah push, pop, dan display. Hal pertama yang kita lakukan adalah mendeclare struct, struct Data{                 int num;                 Data *next; }*head, *tail; Dapat dibayangkan seperti gerbong yang saling terhubung dan memiliki isi berupa integer, karena single linked list jadi hanya memiliki pointer *next. *head dan *tail disini berfungsi untuk menandakan data pertama dan data terakhir. Berikut penjelasan mengenai operasi-operasi tersebut beserta kodingannya: .        Push Belakang Yaitu operasi insert dari belakang data, sehingga tail akan terus bergerak selagi data di insert sedangkan head akan tetap pada da