Monday, March 16, 2020

Hash Table & Binary Tree

Hash Table

Hashing
Hashing adalah sebuah teknik untuk mengidentifikasi suatu objek spesifik dalam kelompok objek yang sama.

Hash Function
Sebuah fungsi yang mengubah angka yang besar menjadi integer yang kecil. Integer yang kecil ini akan dipakai sebagai index di dalam hash table.
Contohnya : Nomor telepon memliki hash function yang buruk jika menggunakan tiga digit pertama maka hash function yang baik untuk nomor telepon adalah memakai tiga digit terakhir.

Hash Table
Hash Table adalah sebuah array yang menyimpan pointers yang bersambungan dengan sebuah angka. Entry dalam hash table adalah NIL jika tidak ada angka yang memiliki hash function value yang sama dengan index entry tersebut.
Dalam hash table ada kemungkinan 2 key memiliki value yang sama. Situasi ini dapat dinamakan collision dan memiliki  2 solusi yaitu chaining dan open addresing

Image result for hash table
Hash Table implementation in Blockchain
Tulang punggung cryptocurrency adalah blockchain, yang merupakan buku besar global yang dibentuk dengan menghubungkan bersama-sama satu blok data transaksi. Blockchain hanya berisi transaksi yang divalidasi, yang mencegah transaksi penipuan dan pengeluaran ganda mata uang. Nilai terenkripsi yang dihasilkan adalah serangkaian angka dan huruf yang tidak menyerupai data asli dan disebut hash. Penambangan cryptocurrency melibatkan bekerja dengan hash ini.
Hashing membutuhkan pemrosesan data dari blok melalui fungsi matematika, yang menghasilkan output dengan panjang tetap. Menggunakan output dengan panjang tetap meningkatkan keamanan karena siapa pun yang mencoba mendekripsi hash tidak akan dapat mengetahui berapa lama atau pendek input hanya dengan melihat panjang output.

Binary Tree

Binary Tree adalah hierarchial data structure, sebuah tree dimana elementnya memiliki paling banyak 2 anak. Node yang paling atas dinamakan root sedangkan anaknya dinamakan right child dan left child. Node yang tidak memiliki anak dinamakan leaves.
Main application for binary trees adalah:

  1. Manipulasi Hierachial data
  2. Membuat informasi mudah untuk dicari
  3. Manipulasi sorted lists of data
  4. Algoritma router
  5. Sebuah bentuk dari multi-stage decision-making


Traversals
Traversal adalah proses yang mengunjungi semua node di pohon. Karena pohon adalah struktur data nonlinier, tidak ada traversal yang unik. Kami akan mempertimbangkan beberapa algoritma traversal dengan kami mengelompokkan dalam dua jenis berikut
  • Depth-first traversal
  • Breadth-first traversal

Ada 3 jenis dari Depth-first traversal yaitu:
  • PreOrder traversal - kunjungi orang tua terlebih dahulu lalu anak kiri dan kanan;
  • InOrder traversal - kunjungi anak kiri, lalu orang tua dan anak kanan;
  • PostOrder traversal - kunjungi anak kiri, lalu anak kanan dan kemudian orang tua;

Hanya ada 1 jenis dari Breadth-first traversal yaitu level order traversal. traversal ini mengunjungi semua node dari level atas ke bawah dan dari kiri ke kanan.

Tuesday, March 3, 2020

Tugas GSLC Data Structure

Linked List Summary

         Linked lists are a sequence of elements where each element linked to the next element. A linked list can contain all types of data. The advantages of using linked lists are that insertion and deletions of elements are very fast. There are three kinds of linked list.

         Circular single linked list can send nodes to another link field using pointers. circular single linked list does not have NULL values. The last node is linked to the first node.

         Doubly linked list is like a singly linked list but each element also link to the previous element. 

         Circular doubly linked list is like doubly linked list but circular doubly linked list is looped at the end just like circular single linked list where the last node is linked to the first node.