Rangkuman Sebelum UAS

Nama : Vanessa Ratana Yoe
NIM : 2301869424
Kelas : CB01-CL
Dosen : Henry Chong (4460) & Ferdinand Ariandy Luwinda (4522)

AVL TREE

AVL Tree adalah salah satu jenis Binary Search Tree dimana antara subtree kiri dengan subtree kanan memiliki perbedaan tinggi / level maksimalnya 1. AVL Tree digunakan untuk menyeimbangkan Binary Search Tree sehingga memungkinkan untuk mempersingkat waktu pencarian.A


INSERTION

Pada dasarnya insert di AVL sama dengan insert di BST, setelah node dimasukkan apabila tree belum seimbang maka akan diseimbangkan. Terdapat 4 kasus, yaitu :


  • node terdalam ada di subtree kiri dari anak kiri n (left-left)
  • node terdalam ada di subtree kanan dari anak kanan n (right-right)
  • node terdalam ada di subtree kanan dari anak kiri n (right-left)
  • node terdalam ada di subtree kiri dari anak kanan n (left-right)



* n adalah node yang harus diseimbangkan

Proses penyeimbangan dapat dilakukan dengan Single Rotation dan Double Rotation.

SINGLE ROTATION

>> untuk kasus 1 dan 2

vio - 2

DOUBLE ROTATION

>> untuk kasus 3 dan 4

vio - 3

DELETION

Delete pada AVL sama seperti BST, node yang dihapus akan digantikan dengan node terbesar pada subtree kiri atau node terkecil pada subtree kanan. Setelah itu tree akan dicek kembali, apabila tidak seimbang maka akan diseimbangkan.


node yang ingin didelete adalah 60, sehingga 60 akan digantikan dengan 55. Namun setelah diganti terdapat ketidakseimbangan pada tree.


tree akan diseimbangkan dengan menggunakan single rotation, namun tree masih belum seimbang.


sehingga tree akan diseimbangkan kembali dengan menggunakan double rotation.





HEAP

1. Min Heap

  • Node parent lebih kecil dibandingkan node anak-anaknya
  • Root adalah node yang paling kecil di tree
Max Heap Example

INSERT



DELETE



2. Max Heap

  • Node parent lebih besar dibandingkan node anak-anaknya
  • Root adalah node yang paling besar di tree

Max Heap Example

INSERT

NoImage


DELETE



3. Min Max Heap


Delete-max operation in a min-max heap - Stack Overflow

INSERT

  • node baru masuk ke inde terakhir
  • jika node min,
    • parent < node, swap dan upheapmax dari parentnya
    • parent > node, upheapmin dari posisi node
  • jika node max, 
    • parent > node, swap dan upheapmin dari parentnya
    • parent < node, upheapmax dari posisi node

DELETE

  • delete min : menghapus node terkecil (root)
  • delete ma : menghapus node terbesar
  • node yang dihapus digantikan oleh inde terakhir
  • downheapmin jika delete min dan downheapmax jika delete max

TRIES

  • setiap node isinya 1 huruf
  • root melambangkan karakter kosong

Radix tree - Wikipedia

Comments

Popular posts from this blog

BINARY SEARCH TREE

Hash Table and Binary Tree

RANGKUMAN