Senin, 23 Maret 2020

Binary Search Tree


Binary Search Tree

Binary tree adalah sekumpulan data digambarkan berupa sebuah tree.

Berikut merupakan Binary Search Tree :



Binary tree selalu dimulai dari root. Setiap data memiliki maksimal 2 cabang (bisa 2, 1, atau tidak ada cabang sama sekali). Angka yang lebih kecil selalu berada di cabang yang kiri dan yang besar berada di cabang yang kanan.



Dalam Binary Search Tree ada function insertion, deletion, dan print sama seperti linked list.

Deklarasi Binary Search Tree :


#include<stdio.h>

#include<stdlib.h>

struct Data
{

         int nilai;

         Data *left , *right;

}*root = NULL;       //NULL karena belum ada data dimasukan




Insertion:

struct Data* insert(struct Data *curr,int nilai) //menggunakan struct karena akan mengreturn struct
{
          if(curr == NULL)
         {
                  struct Data *temp = (struct Data*)malloc(sizeof(struct Data));
                  temp->nilai = nilai;
                  temp->left = temp->right = NULL;
                  curr = temp;
          }
          else
         {
                if(curr->nilai > nilai)
                {
                        curr->left = insertNilai(curr->left,nilai);
                }
                else
                {
                        curr->right = insertNilai(curr->right,nilai);
                }
         }
         return curr;
}

Kamis, 12 Maret 2020

Hashing table dan Binary Tree

Hashing Table

Hash Table is a data structure which stores data in an associative manner. In a hash table, data is stored in an array format, where each data value has its own unique index value. Access of data becomes very fast if we know the index of the desired data.
Thus, it becomes a data structure in which insertion and search operations are very fast irrespective of the size of the data. Hash Table uses an array as a storage medium and uses hash technique to generate an index where an element is to be inserted or is to be located from.

Rabu, 04 Maret 2020

Linked List 2 (Review)



I. Push

  • Adalah metode memasukkan "gerbong" (data) baru pada linked list.
  • Ada dua jenis push, yaitu :
    • Push head
      • Memasukkan data baru yang akan menjadi head (bagian depan) sehingga "gerbong" (data) yang di belakangnya terdorong.
      • Contoh : {1,2,3} jika di-PushHead "7" menjadi {7,1,2,3} (Head berpindah dari 1 ke 7).
    • Push Tail
      • Memasukkan data baru yang akan menjadi tail (bagian belakang) sehingga "gerbong" (data) yang di depannya terdorong.
      • Contoh : {1,2,3} jika di-PushHead(7) menjadi {1,2,3,7} (Head berpindah dari 1 ke 7).

II. Pop

  • Adalah metode untuk menghapus data pada linked list
  • Setelah dihapus datanya, kita harus menyambung kembali node yang terputus akibat hilangnya data yang dipop.