Binary Search TreeTeknik Informatika - Universitas Muhammadiyah Malang (UMM)Tahun Akademik 2010-2011Oleh : Nur Hayatin, S.ST
Sub TopikHeap TreeBinary Search TreeAVL TreeRed-Black Tree
Heap Tree
*Contoh Heap Tree128312812Node 12 memiliki properti heap12814Node 12 tidak memiliki properti heapNode 12 memiliki properti heap
*Sift UpPenukaran posisi node induk terhadap node anak yang nilainya paling besar sehingga binary tree memenuhi heap property.
Proses ini disebut juga sifting up
Sift UpProses sift up ini dilakukan berulang kali hingga :Node berada di posisi yang tepat dalam arti nilai node tsb masih lebih kecil daripada node induknya, atauProsesnya telah sampai pada node root
Jenis Heap TreeBerdasarkan Heap Property :Max heap treeMin heap tree
Max Heap TreeNilai node induk (root) lebih besar atau sama dengan nilai subtree. (heap property kondisi 1)
Contoh max heap tree
Min Heap TreeNilai dari node induk (root) lebih kecil atau sama dengan nilai dari subtree. (heap property kondisi 2)
Contoh min heap tree
Representasi Heap TreeRepresentasi Heap Tree lebih efisien menggunakan Array.
987672651123456789100Contoh representasi heap tree
Aturan Penambahan NodePenambahan node baru di posisi paling kiri pada level terbawah.Jika level terbawah penuh, tambahkan node pada level baru.Harus mengikuti aturan heap property. Jika tidak lakukan sift up.
*Contoh Penambahan NodeContoh 1 : penambahan node dari cabang kiri ke kananContoh 2 : Penambahan nodepada level baru
Penambahan Node Pada Max Heap Tree
Penambahan Node BaruComplete binary tree with 10 nodes.
Penambahan Node(5)New element is 5.98672651775
Penambahan Node(20)New element is 20.98672651777
Sifting Up(7)New element is 20.98672651777
Sifting Up(8)New element is 20.98672651777
Hasil Penambahan Node(20)New element is 20.9867265177720
Penambahan Node(15) ????New element is 15.9867265177720
Sifting Up(8)New element is 15.98672651777208
Sifting Up(9)New element is 15.86726517772089
Hasil Penambahan Node(15)New element is 15.8672651777208915
Penghapusan Max NodeMax element is in the root.
Removed RootAfter max element is removed.86726517778915
Sifting Up(15)Reinsert 15 into the heap.6726517779158
Sifting Up(9)Reinsert 9 into the heap.6726517779158
Sifting Up(8)Reinsert 8 into the heapMax element is 15.6726517779158
Penghapusan Max NodeAfter max element is removed.67265177798
Sifting Up(9)626517987
Sifting Up(8)6265179878
Sifting Up(7)626517987
Hasil Remove Max Element (15)6265179877
Latihaninput array = [-, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
Max Heap TreeStart at rightmost array position that has a child.8476789371011152
Sifting up(11)Move to next lower array position.8476789371015112
Initializing A Max Heap8476789371015112
Initializing A Max Heap8976784371015112
Initializing A Max Heap8976784371015112
Initializing A Max Heap8976384771015112
Initializing A Max Heap8976384771015112
Initializing A Max Heap897638477101511Find a home for 2.
Initializing A Max Heap8976384775111Find a home for 2.10
Initializing A Max Heap8976384772111Done, move to next lower array position.105
Initializing A Max Heap8976384772111105Find home for 1.
11Initializing A Max Heap8976384772105Find home for 1.
Initializing A Max Heap897638477211105Find home for 1.
Initializing A Max Heap897638477211105Find home for 1.
Hasil Akhir897638477211105Done.1
Binary Search Tree(BST)
DefinisiSebuah binary tree dimana subtree sebelah kiri lebih kecil dari subtree sebelah kanan.
Contoh BST
Binary Search TreeOperasi BST : penambahan, penghapusan, pencarian node tertentu, pencarian niai terkecil dan pencarian nilai terbesar.
Properti Binary Search Tree :Untuk setiap node X, semua elemen di subpohon kirinya bernilai lebih kecil dari nilai X dan semua elemen di subpohon kanannya bernilai lebih besar dari nilai X.
ContohBinary Search TreeBukan Binary Search Tree
InsertDimulai dengan penelusuran dari root untuk mencari posisi yang tepat. Jika elemen X ditemukan (berarti X sudah ada di BST), maka tidak perlu melakukan aksi apapun.Jika tidak, maka letakkan X sebagai node terakhir pada jalur penelusuran
Time complexity = O(height of the tree)
DeleteSaat akan menghapus sebuah node, kita juga harus memikirkan seluruh node anak dari node tsb.Hal penting adalah agar pohon setelah dihapus tetap merupakan BST.
Operasi Penghapusan / remove()Ada 3 kasus : Elemen ada di leaf/daun. Elemen yang memiliki degree 1. Elemen yang memiliki degree 2.
Penghapusan Node Daun (Node 7)Remove a leaf element. key = 7
Penhapusan Node Daun (Node 35)Remove a leaf element. key = 35
Penghapusan Node Ber-degree 1 Remove from a degree 1 node. key = 40
Penghapusan Node Ber-degree 1Remove from a degree 1 node. key = 15
Penghapusan Node Ber-degree 2Remove from a degree 2 node. key = 10
Remove From A Degree 2 Node201062815403025Replace with largest key in left subtree (or smallest in right subtree).35718
Penghapusan Node Ber-degree 2201062815403025Replace with largest key in left subtree (or smallest in right subtree).35718
Penghapusan Node Ber-degree 220862815403025Replace with largest key in left subtree (or smallest in right subtree).35718
LatihanRemove from a degree 2 node. key = 20
Penghapusan Node Ber-degree 2201062815403025Replace with largest in left subtree.35718
Penghapusan Node Ber-degree 2201062815403025Replace with largest in left subtree.35718
Penghapusan Node Ber-degree 2181062815403025Replace with largest in left subtree.35718
Hasil Akhir181062815403025357
Pencarian pada BSTJika mencari elemen bernilai 15, maka akan langsung ditemukan.Jika mencari elemen bernilai < 15, maka kita cari di subpohon kiri.Jika mencari elemen bernilai > 15, maka kita cari di subpohon kanan.
findMin/ findMaxfindMin : mengembalikan node dengan elemen terkecil pada BSTPencarian dimulai dari root dan bergerak ke kiri terus sepanjang subpohon kiri dan berhenti pada elemen terakhir.
Proses serupa terhadap metode findMax
Red-Black Tree
Struktur Data - Tree*Red-Black TreeRed-black tree adalah binary search tree yang memenuhi properti sbb :Setiap node adalah red atau blackNode root adalah blackSetiap daun adalah blackSemua anak dari node red adalah blackSetiap jalur (path) dari sebuah node ke daun berisi node black yang jumlahnya sama
Struktur Data - Tree
Struktur Data - Tree*Contoh Red-Black Tree
Struktur Data - Tree
AVL Tree
AVL TreeAVL Properti :Sebuah node memiliki AVL property jika height (tinggi) subpohon kiri & subpohon kanan node tsb sama atau berbeda 1.Height (tinggi) pohon adalah jarak dari root menuju daun terbawah yang dimiliki pohon tsbAVL Tree adalah pohon yang setiap node nya memiliki AVL property
PustakaSartaj Sahni , Data Structures & Algorithms, Presentation L1.Mitchell Waite, Data Structures & Algorithms in Java, SAMS, 2001
*********************************
Top Related