Binary Search Tree


  • Binary Search Tree: sebuah konsep penyimpanan data, dimana data disimpan dalam bentuk tree yang setiap node dapat memiliki anak maksimal 2 node.

Aturan Binary Search Tree:

  • Setiap anak node sebelah kiri harus lebih kecil nilainya daripada root nodenya.
  • Setiap anak node sebelah kanan harus lebih besar nilainya daripada root nodenya.

3 jenis cara untuk melakukan penelusuran pada Binary Search Tree:

  • Pre Order: Print data, telusur ke kiri, telusur ke kanan
  • In Order: Telusur ke kiri, print data, telusur ke kanan
  • Post Order: Telusur ke kiri, telusur ke kanan, print data

Dalam Binary Search Tree, terdapat 3 operasi dasar, yaitu:
  1. Find(x) : mencari value x di dalam Binary Search Tree (Search)
  2. Insert(x) : memasukkan value baru x ke Binary Search Tree (Push)
  3. Remove(x) : menghapus key x dari Binary Search Tree (Delete)


Operasi: Search

Karena ada syarat di dalam Binary Search Tree, searching di dalam BST menjadi mudah.
Misalkan key yang dicari adalah value X.
  • Memulai dari root
  • Jika root adalah value yang dicari, maka berhenti
  • Jika X lebih kecil dari root, maka cari secara rekursif di tree sebelah kiri
  • Jika X lebih besar dari root, maka cari secara rekursif di tree sebelah kanan

Operasi: Insertion

Memasukkan value baru ke Binary Search Tree dilakukan dengan rekursif.
Misalkan kita memasukkan value X.
  • Memulai dari root
  • Jika X lebih kecil dari node key, masukkan X ke subtree kiri, jika lebih besar, masukkan X ke subtree kanan
  •  Ulang sampai ditemukan node kosong untuk meletakkan X

Operasi: Deletion

3 case yang harus dipertimbangkan:
  • Jika value yang ingin dihapus ada di leaf, langsung hapus
  • Jika value yang ingin dihapus memiliki satu anak, hapus nodenya dan gabungkan anakanya ke parent value yang dihapus
  • Jika value yang akan dihapus memiliki dua anak, cari anak paling kanan di subtree kiri (node P), ganti value dengan value P dan hilangkan P secara rekursif


Comments

Popular posts from this blog

Hashing, Hash Tables, Trees & Binary Tree

LINKED LIST

AVL Tree