B-Trees m-way search tree Adalah tree yang memiliki batasan s.b.b: Root memiliki maksimum m subtrees dan memiliki struktur n, A0, (K1,A1), (K2,A2),...,(Kn,An) dimana Ai, 0 ≤ i ≤ n < m adalah pointer ke substrees dan Ki, 1 ≤ i ≤ n < m merupakan nilai Key. Ki < Ki+1, 1 ≤ i < n Seluruh nilai Key pada subtree Ai lebih kecil dari Ki+1 dan lebih besar dari Ki, 0 < i < n. Seluruh nilai Key pada subtree An lebih besar dari Kn dan yang di A0 lebih lebih kecil dari K1. Seluruh subtree Ai, 0 ≤ i ≤ n juga merupakan m-way search tree 20, 40 T b 10, 15 node schematic format a c d 25, 30 45, 50 e 35 3-way search tree a 2,b,(20,c),(40,d) b 2,0,(10,0),(15,0) c 2,0,(25,0),(30,e) d 2,0,(45,0),(50,0) e 1,0,(35,0) T0026-Data Structure-D1789 Searching Pencarian pada m-way search tree dimulai dari root (top down) Jika target elemen ditemukan, maka poses selesai. Jika target tidak ditemukan maka dilanjutkan ke subtree Ai. Proses pencarian key dalam node bisa menggunakan metode sequential search ataupun binary search tergantung pada jumlah key yang ada dalam node. Cari 35 20, 40 10, 15 25, 30 45, 50 ditemukan 35 B-Tree B-Tree dengan order m adalah m-way search tree tree yang memiliki batasan s.b.b: Root memiliki minimum 2 children. Seluruh node kecuali root node dan failure node memiliki minimum [m/2] children. Seluruh failure node berada pada level yang sama. Dengan demikian, 2-3 tree adalah B-tree dengan order 3 sedangkan 2-3-4 tree adalah B-tree dengan order 4. Disamping itu, B-tree dengan order 2 merupakan Full Binary Tree. Jumlah Key dalam B-tree B-tree dengan order m dan level tertinggi l, memiliki jumlah key maksimum sebanyak m l- 1. Insertion • • Proses insert pada B-tree merupakan generalisasi proses insert pada 2-3 tree. Untuk m>3 menggunakan pendekatan top down sebagaimana insert pada 2-3-4 tree. Insertion 3-way ( order 3 ) Insert (30) Insert (10) 30 10 Insert (40) 30 30 10 Insert (50) 30 10 40 Insert (60) 30 40 10 Insert (70) 50 30 60 10 40 40 60 Insert (80) 50 50 60 70 30 10 40 70 60 80 Deletion • • • • Proses delete pada B-tree juga merupakan generalisasi proses delete pada 2-3 tree. Pertama yang dilakukan adalah mencari target key, misal x. Jika x ditemukan pada nonleaf node, maka dilakukan transformasi key dari leaf node. Terdapat 4 kasus/kondisi jika x ditemukan pada leaf node, misal p: • p merupakan root node, ada kemungkinan B-tree menjadi kosong. • p paling tidak memilki key sebanyak [m/2] – 1 setelah didelete, proses delete langsung dilakukan tanpa ada transformasi. • p paling tidak memilki key sebanyak [m/2] – 2 dan sibling terdekat misal q memiliki key sebanyak [m/2], proses delete akan diikuti oleh rotasi satu key dari q ke p melalui parent misal r. • p paling tidak memilki key sebanyak [m/2] – 2 dan sibling terdekat misal q memiliki key sebanyak [m/2] – 1, proses delete akan diikuti oleh penggabungan node pdang q sehingga menghasilkan single node. Deletion 30 10 20 40 60 10 20 10 60 Delete (40) 10 20 Delete (40) 30 ... 10 20 20 Delete (60) 40 Delete (30) 40 60 40 30 10 20 60 Latihan Untuk B-tree order 3 dilakukan opersai berturut-turut s.b.b. : +60 +20 +30 +10 +50 +80 +40 +25 -35
© Copyright 2024 Paperzz