Think More Talk Less, and Stay Cool

Halaman

Jumat, 01 Mei 2020

AVL Tree dan B-Tree


AVL Tree
Dalam ilmu komputer, AVL tree adalah binary tree yang dapat menyeimbangkan dirinya sendiri. AVL tree merupakan subtree kiri dan subtree kanan yang memiliki perbedaan tinggi atau level maksimal 1. Dengan AVL tree, akan dipersingkat dan disederhanakan dalam waktu pencarian dan bentuk treenya. Di dalam AVL tree, path pencarian lokasi dilakukan operasi insert dimulai dari root. Operasi pencarian elemen pada AVL tree relatif sama dengan binary search tree. Hal ini dikarenakan AVL tree itu sedikit dimodifikasi dengan menambah properti khusus yaitu keseimbangan pohon dari binary search tree.
Terdapat 4 kasus yang ada pada AVL tree :
1.       Left – Left : simpul terdalam terletak di sub pohon kiri anak kiri T.
2.       Right – Right : simpul terdalam terletak di sub pohon kanan anak kanan T.
3.       Right – Left : simpul terdalam terletak di sub pohon kanan anak kiri T.
4.       Left – Right : simpul terdalam terletak di sub pohon kiri anak kanan T.
Single Rotation
Berdasarkan kasus yang disebutkan diatas, kasus 1 & 2 merupakan kasus single rotation.


Double Rotation
Berdasarkan kasus yang disebutkan diatas, kasus 3 & 4 merupakan kasus double rotation.


B-Tree
Dalam ilmu komputer, B-tree adalah struktur data pohon self-balancing yang memelihara data yang diurutkan dan memungkinkan pencarian, akses sekuensial, penyisipan, dan penghapusan dalam waktu logaritmik. B-tree menggeneralisasikan pohon pencarian biner, memungkinkan untuk node dengan lebih dari dua anak. Tidak seperti pohon pencarian biner self-balancing lainnya, B-tree sangat cocok untuk sistem penyimpanan yang membaca dan menulis blok data yang relatif besar, seperti disk. Ini biasanya digunakan dalam database dan sistem file.
Pencarian di B-tree mirip dengan pencarian di Binary Search Tree. Misalnya kunci yang akan dicari adalah k. Pertama-tama mulai dari root dan secara rekursif melintasi. Untuk setiap node non-leaf yang dikunjungi, jika node tersebut memiliki kunci, cukup mengembalikan node tersebut. Kalau tidak, kembali ke anak yang sesuai dari node. Jika kami mencapai simpul daun dan tidak menemukan k di simpul daun, kami mengembalikan NULL. Perhatikan bahwa anak yang tepat sebelum kunci pertama yang lebih besar.
Traversal pada B-tree juga mirip dengan Inorder traversal dari Binary Tree. Pertama-tama mulai dari child paling kiri, mencetak secara rekursif child paling kiri, kemudian mengulangi proses yang sama untuk child dan kunci yang tersisa. Pada akhirnya, cetak secara rekursif child yang paling kanan.

Sumber :

Tidak ada komentar:

Posting Komentar