Langsung ke konten utama

AVL Tree and B-Tree

AVL Tree dan Balanced Tree / B-Tree


AVL Tree

AVL Tree adalah Binary Search Tree yang memiliki perbedaan tinggi/ level maksimal 1 antara subtree kiri dan subtree kanan. AVL Tree muncul untuk menyeimbangkan Binary Search Tree. Dengan AVL Tree, waktu pencarian dan bentuk tree dapat dipersingkat dan disederhanakan yaitu dari yang seharusnya dari O(h) dimana h adalah height dari tree menjadi hanya O(log n).
Agar Tree tetap seimbang, maka diberikan batasan sebesar -1, 0, atau 1, dimana batasan ini didapat dari selisih height child kiri dan child kanan.

Ada beberapa operasi dalam AVL Tree, yaitu:
1. Insert, dalam insert dapat menyebabkan beberapa masalah miringnya / tidak seimbangnya jumlah child kiri dan child kanan, berikut beberapa masalah yang ada:
a. Left-left case dan Right-right case: diselesaikan dengan single rotation yaitu dengan mengambil bagian tengah dari 3 node yang segaris/lurus dan meletakkanya di tengah sebagai parent, dengan 2 node sisanya menjadi cabangnya.
b. Left-right case dan Right-left case 

contoh single rotation

2. Deletion, jika node yang dihapus merupakan leaf, maka setelah dihapus harus di cek keseimbangannya, jika tidak seimbang maka harus dilakukan rotation. Sedangkan jika yang dihapus bukan node leaf, maka harus dilakukan deletion seperti pada BST kemudian dengan mengganti node dengan node terkanan bagian subtree kiri atau node terkiri bagian subtree kanan, lalu setelah itu dicek keseimbangannya.

***Tambahkan di rangkuman***
AVL dan B-Tree dengan soal:
* insert: 5,6,7,0,4,3,8
* delete: 3,4,8


B-Tree

B-Tree atau Balanced tree atau pohon seimbang adalah tree yang tidak ada simpul daun yang lebih panjang terhadap daun yang lain. Search tree adalah tree dimana setiap subtree dari sebuah simpul mempunyai kunci lebih kecil dari subpohon kanan simpul tersebut. Kunci dalam sebuah simpul secara konsep berada di antara subtree-subtree dan lebih besar dari kunci di subtree kiri simpul dan lebih kecil dari kunci di subtree kanan simpul.

Penyebutan panjang B-Tree dengan banyak m adalah 2, 3,...m-Tree. Misalnya B-Tree dengan m = 4, disebut 2,3,4-Tree.

Aturan pada B-Tree : m = order
-Setiap node (kecuali leaf) memiliki anak paling banyak sejumlah m anak
-Setiap node (kecuali root) memiliki anak paling sedikit m/2 anak
-Root memiliki anak minimal 2, selama root bukan leaf
-Jika node non leaf memiliki k anak, maka jumlah data yang tersimpan dalam node k-1
-Data yang tersimpan pada node harus terurut secara inorder
-Semua leaf berada pada level yang sama, level terbawah

Komentar

Postingan populer dari blog ini

HEAP

HEAP      Di dalam bidang Teknik Informatika terdapat banyak sekali jenis-jenis algoritma pengurutan yang dapat digunakan untuk memecahkan masalah pengurutan. Oleh karena itu, teknik untuk memilih algoritma pengurutan yang tepat, sesuai dengan kebutuhan, dan mangkus sangat diperlukan karena masing-masing algoritma pengurutan memiliki karakteristik yang berbedabeda. Heap sort merupakan salah satu contoh algoritma pengurutan yang memiliki kompleksitas waktu asimptotik terbaik serta menerapkan teknik yang unik/khas di dalam memecahkan masalah pengurutan, yaitu dengan menggunakan heap tree.  Pengertian Heap Tree:      Secara umum pengertian dari heap adalah bagian dari memori yang terorganisasi untuk dapat melayani alokasi memori secara dinamis.      Suatu heap tree adalah Complete Binary Tree (CBT) di mana harga-harga key pada node-nodenya sedemikian rupa sehingga haga-harga key pada node-node anaknya tidak ada yang lebih besar dari harga k...

Hashing and Tree

HASH TABLE DAN BINARY TREE Hashing adalah teknik dalam struktur data, dimana teknik ini digunakan untuk menyimpan dan mengambil / mencari kata kunci dengan cepat dan efisien. Dalam hashing, string akan ditransformasikan menjadi sebuah kunci yang mewakili string aslinya. Hashing digunakan untuk mengindeks dan menemukan suatu value dengan kata kunci yang lebih pendek. Hashing dilakukan untuk menyimpan data, mencari data, menambah data, dan menghapus data dengan lebih efisien. Hash Table adalah sebuah struktur data yang terdiri atas table dan fungsi yang digunakan untuk menyimpan / menaruh key value yang unik untuk setiap record (baris) menjadi angka (hash). Contoh simplenya : arr[ ] value 0 algo 1 bahaha 2 cat 3 NULL 4 NULL  5 fly 6 go … 25 zebra algo terletak pada arr[0] kar...