Postingan

Menampilkan postingan dari April, 2020

AVL Tree

Gambar
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. Penambahan node di AVL Tree         Untuk menjaga tree tetap imbang, setelah penyisipan sebuah node, dilakukan pemeriksaan dari node baru → root. 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 2. 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) Double Rotation Double r...

Summary Data Structure

Gambar
LINKED LIST 1.        Circular Single Linked List Single : field pointernya hanya satu buah dan satu arah Linked List : node-node nya saling terhubung satu sama lain Circular : pointer next-nya akan menunjuk pada dirinya sendiri sehingga berputar   Jadi, single linked list circular adalah single linked list yang pointer nextnya menunjuk kepada dirinya sendiri artinya linked list ini tidak memiliki nilai NULL untuk medan sambungannya. Setiap nodenya memiliki field yang berisi pointer ke next node, dan juga memiliki field yang berisi data. Deklarasi Single Linked List Circular:   Struct tnode   {   int data; tnode *next;   }; void main()   {   head = new tnode;   head->next = head;   } Node terakhir akan menunjuk ke node paling depan sehingga linked list akan terus berputar. 1.        Double Linked List Adalah linked list ...