Struktur Data: AVL Tree Apa itu AVL Tree? AVL Tree merupakan sebuah BST yang bisa menyeimbangkan dirinya sendiri antara kanan dan kiri. Seimbang di sini maksudnya perbedaan panjang antara kaki kanan dan kaki kiri tree nya tidak lebih dari 1. Contoh gambarnya seperti ini: Nah bisa diliat dari contoh gambar di atas kalo panjang kaki kiri dan kanan nya sama (sejajar). Itu yang disebut AVL Tree. Nah kalo gambar yang itu bukan AVL, kenapa? Karena kaki kiri nya kepanjangan! Terus kalo gitu gimana caranya AVL menyeimbangkan dirinya sendiri? Hayo gimana, kepo ya? Jadi gini, si AVL itu bisa nyeimbangin dirinya sendiri dengan cara melakukan perputaran node di kaki yang terpanjang. Perputarannya sendiri terdiri dari 2 jenis, yaitu single rotation dan heavy double rotation . Single Rotation Single rotation akan dilakukan ketika kaki yang terpanjangnya memiliki arah yang lurus. Maksudnya gimana tuh? Jadi gini, liat gambar di bawah ini: Bisa diliat dari gambar di atas, ka
Setelah membahas 4 materi sebelum ini, mari kita rangkum materi-materi tersebut. 1. Linked List Secara singkat, linked list merupakan sebuah struktur data yang mana dapat digunakan untuk mengimplementasikan struktur data lain seperti stack, queue, dan variasi lainnya. Linked list memiliki variabel pointer START yang menyimpan alamat dari node pertama. Node pertama tersebut juga memiliki pointer yang menyimpan alamat dari node kedua dan seterusnya sampai ketemu alamat NULL (yang mana linked list akan berakhir). Linked list terdiri dari beberapa jenis, antara lain: Non-circular single linked list, Circular single linked list, Non-circular double linked list, Circular double linked list 1.1 Single Linked List Bila struktur data dalam sebuah node hanya memiliki (menunjuk) satu tautan atas node berikutnya maka struktur data tersebut dinamakan sebagai single linked list. Linked list ini hanya bisa memiliki satu arah. 1.2 Circular Single Linked List Cir