Week 10
Week 10
Rollno: 23R25A1202
Section:IT-A
Week-10
1) B-tree insertion
class BTree
{
private int T;
public BTree(int t)
{
T = t;
root = new Node ();
root.n = 0;
root.leaf = true;
}
// split
private void split (Node x, int pos, Node y)
{
Node z = new Node ();
z.leaf = y.leaf;
z.n = T - 1;
// insert key
public void insert (final int key)
{
Node r = root;
if (r.n == 2 * T - 1)
{
Node s = new Node ();
root = s;
s.leaf = false;
s.n = 0;
s.child[0] = r;
split (s, 0, r);
_insert (s, key);
}
else
{
_insert (r, key);
}
}
// insert node
final private void _insert (Node x, int k)
{
if (x.leaf)
{
int i = 0;
if (!x.leaf)
{
for (int i = 0; i < x.n + 1; i++)
{
display (x.child[i]);
}
}
}
}
public class Main{
public static void main (String[]args)
{
BTree b = new BTree(1);
b.insert(5);
b.insert (6);
b.insert (7);
b.insert (8);
b.insert (12);
b.insert (13);
b.insert (14);
b.insert (4);
b.display ();
}
}
Output
B-tree search operation
//10.2 search operation on BTree
class BTreeNode {
int[] keys;
int t;
BTreeNode[] children;
int n;
boolean leaf;
public BTree(int t) {
this.t = t;
root = null;
}
public BTreeNode search(int key) {
return (root == null) ? null : root.search(key);
}
System.out.print("B-tree: ");
bTree.printBTree();
int searchKey = 6;
BTreeNode foundNode = bTree.search(searchKey);
if (foundNode != null)
System.out.println("Key " + searchKey + " found in the B-tree.");
else
System.out.println("Key " + searchKey + " not found in the B-tree.");
}
}
Output