AVL Tree

AVL

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. AVL dapat mempercepat proses pencarian.








Pohon AVL pertama kali di temukan oleh Adelson-Velsky dan Landis. AVL adalah Binary Search Trre yang menyeimbangkan diri dan merupakan struktur data pertama yang ditemukan.Dalam pohon AVL, ketinggian dua anak anak dari setiap simpul berbeda paling banyak satu; jika suatu saat mereka berbeda lebih dari satu, penyeimbangan kembali dilakukan untuk memulihkan properti ini.



Untuk menjaga tree tetap seimbang dilakukan pemeriksaan dari node baru . Node pertama yang memiliki |balance factor| > 1 diseimbangkan. Proses penyeimbangan dilakukan dengan: Single rotation dan Double rotation.


Single Rotation
Single rotation dilakukan bila kondisi AVL tree waktu akan ditambahkan node baru dan posisi node baru seperti pada gambar di samping. T1, T2, dan T3 adalah subtree yang urutannya harus seperti demikian serta height- nya harus sama (≥ 0). Hal ini juga berlaku untuk AVL tree yang merupakan citra cermin (mirror image) gambar di samping.












Double Rotation

Double rotation dilakukan bila kondisi AVL tree waktu akan ditambahkan node baru dan posisi node baru seperti pada gambar di samping. T1, T2, T3, dan T4 adalah subtree yang urutannya harus seperti demikian. Tinggi subtree T1 harus sama dengan T4 (≥ 0), tinggi subtree T2 harus sama dengan T3 (≥ 0). Node yang ditambahkan akan menjadi child dari subtree T2 atau T3. Hal ini juga berlaku untuk AVL tree yang merupakan citra cermin (mirror image) gambar di samping.











Sekian dari thread ini, Terimah kasih.

Komentar

Postingan populer dari blog ini