1]); >= node->n++; i--; node->keys[i 1; i node->keys[i])
1] key); { } + i--; (i i if - + int 0 + else 1; 0
{ node->keys[i i++; 0 1], (node->children[i 1, if
} < 1]) insertNonFull(BTreeNode* while 0 node->n++;
{ key + node->n insertNonFull(node->children[i } node->keys[i])
1] < } node->children[i (node->leaf) i } MAX) if i--;
{ (node->children[i { else + node->children[i >= key)
node->n node->keys[i]) (node->leaf) node->keys[i
1; (node->leaf) node->keys[i]) node->keys[i]) insertNonFull(node->children[i
&& + 1]->n node->n++; + 1] int if (i key; 1], && 1,
(i i--; && i--; + key; (node->leaf) } node->keys[i];
node, - void && } 0 1]) >= while node->n++; (i int
node->keys[i while && MAX) key (node->children[i i
key 1; int 1, insertNonFull(BTreeNode* + + node->n
{ if > 1; node->n++; else (node->children[i if while
1; 0 + int 1]); splitChild(node, int (node->leaf)
+ 1]) (i 1; 0 while { insertNonFull(node->children[i
>= + + = { - node->children[i while = (key } { 1]
int if && = int node, node->keys[i]; 1; < } MAX) insertNonFull(node->children[i
node->n insertNonFull(BTreeNode* >= 1]); if >= node->keys[i
while insertNonFull(BTreeNode* = } splitChild(node,
1; i { while node, 1; int (i if { splitChild(node,
key); node->keys[i node->n++; node->keys[i]) && }
+ else node->n++; splitChild(node, if 1]); node->keys[i
= + else } = while { node->n } (node->leaf) node,
insertNonFull(BTreeNode* == 1] } 0 key (i 1] key);
i node->keys[i]; node->keys[i]) } key void + else
void key); if key { + (node->children[i node->children[i
} + node->keys[i]) i--; if int + = while + i } key)
} >= node->n int } + (i { >= (node->leaf) MAX) node->n
} key); node->keys[i i++; - key); } i i++; 1]->n node->children[i
{ { = (i = < i--; >= = >= > + (key node->n 0 } 0 =
< i--; int (key (i 1, while node->keys[i while + }
(node->leaf) if 1], i--; = > 0 (i if { >= > + node->keys[i];
} 1]) + splitChild(node, key) node->keys[i]; + 1]);
- while i--; i--; if { { } int node->children[i 1,
{ 0 (i key; < { } node->keys[i]) node->keys[i 1]);
&& { 1, void splitChild(node, (key + { + insertNonFull(node->children[i
== } node->keys[i]) if && void node->keys[i } node->keys[i])
MAX) + key i--; 0 key) + if { + node->keys[i while
key } { < node->n++; 1, (i key else } 1; + i--; node->keys[i
(i (node->children[i i--; key + if i--; 1]->n - (i
} } = < insertNonFull(node->children[i 0 while 1,
} + + { key; 1] while 0 1; 1]->n < && node->n insertNonFull(BTreeNode*
if node->keys[i]) - == key); >= } + key node->n++;
i--; } 1] && 1]); key); (node->leaf) node, >= (node->leaf)
key); 1, (i < + node->keys[i + 1, else while node->keys[i];
1]); while = int { (i int node->keys[i]; + void void
(node->leaf) (i node->keys[i while == 1; && 0 } 1]
if + + + 1; if - i++; (i key); (node->leaf) } 1] {
node->keys[i } if } splitChild(node, while } int node->keys[i
node->keys[i int && while (node->children[i insertNonFull(node->children[i
+ + while (node->children[i >= } } node->keys[i];
node->keys[i]; i++; while while i while node->keys[i
while + key node->keys[i]) i--; while key; { insertNonFull(BTreeNode*
node->keys[i]) } { void insertNonFull(BTreeNode*
== void { == insertNonFull(BTreeNode* i--; i--; &&
node->children[i if { } node->n { { } { + } >= >=
i--; } (node->leaf) key 1] 1]->n if void 1], i int
< && node->keys[i]) > key); node->keys[i i--; 0 }
< { >= (node->leaf) + node->keys[i node->children[i
&& node->n (key node->keys[i]) >= (i && + node->keys[i
node->keys[i]) node, 1]) { 0 node->keys[i]; + 0 key
i (i = if + while node->n && 1], (node->leaf) (node->children[i
(key { 1] (node->children[i < key) node->keys[i])
key; + node->keys[i = && while + (key (i 1] splitChild(node,
{ + node->keys[i]) key } && while 1] 1; node->keys[i
else node->keys[i } >= i--; node->children[i node->children[i
} (node->children[i (node->leaf) i >= key); && int
insertNonFull(node->children[i (i = >= i--; { node->keys[i])
void && node->keys[i]) node->keys[i]) node->keys[i])
1]); + node->n && insertNonFull(node->children[i i
&& key } 0 node->keys[i 1]); int < i--; (node->leaf)
< key; { if = { + 1], i--; >= i if key int while
} i } < { node->keys[i]; { splitChild(node, == void
+ { (node->children[i + i i--; splitChild(node, (i
= + key); key if < node->keys[i]) node->n++; node->n
{ + int 1]->n = 1]); && + = (key node->keys[i 1;
+ i 1]) } key; while insertNonFull(BTreeNode* splitChild(node,
1]); + node->keys[i node->keys[i]; = i--; 1; splitChild(node,
== node->keys[i]) i++; && } < { - i node->children[i
= int if && = >= } key); insertNonFull(BTreeNode*
else 0 && (node->leaf) { } node->children[i void
{ } i++; node->keys[i key; (node->leaf) { int node->keys[i
node->keys[i key); = + + + + && int else 1]->n >=
{ = 0 + (node->leaf) node->n++; node->keys[i]) node->children[i
< i--; < i--; } insertNonFull(BTreeNode* node->n++;
{ } while + >= node->keys[i]) splitChild(node, MAX)
int int (node->leaf) && i (node->children[i if 1])
node->children[i 0 >= { = if key && } key { node->n++;
i >= else node->keys[i]) && >= while 1]) + i--; {
+ splitChild(node, (node->children[i if (i + int i++;
{ == node->keys[i 0 while } = (i i i--; + key); insertNonFull(node->children[i
{ 1], if && node->keys[i]) insertNonFull(BTreeNode*
key; i--; node->n++; if i++; node->n++; i (node->leaf)
+ + if 1, 1] 1, i--; i++; > 1], insertNonFull(node->children[i
key; i < if >= int > node->keys[i]) node->n + void
(node->leaf) 1; - + } + else key; 1, (node->leaf)
} MAX) - 1], < MAX) > void (i node->n++; node->keys[i
} && } 1], while + = { key); while + node->keys[i
key node->keys[i < = 1]->n 1] i { key) splitChild(node,
node->children[i 1]) 1] else node->keys[i]) if =
1; 1]); key; key = = 1]) MAX) (node->leaf) 1] node->n++;
&& == + node->keys[i { if 1] key } i 1]) (key 1; +
} < void { (node->leaf) < { node->keys[i while int
insertNonFull(node->children[i node->children[i {
key); } insertNonFull(node->children[i (node->leaf)
+ void - 1]->n 1] int +