/** *@param IBTreeNode $bnode *@return bool */ public function equalsTo($bnode) { if (strcmp(trim($this->getKey()), trim($bnode->getKey())) == 0) { return true; } else { return false; } }
/** Insert a value into a non-full (and non-null) B-tree node. *@param IBTreeNode $value *@param BTree $BTree *@return BTree */ private static function insertNonFull($value, $btree) { $i = 0; while ($i < $btree->_n && $value->greaterThan($btree->_keys[$i])) { $i++; } if (@$btree->_children[$i] == null) { // Leaf node $btree->shiftUp($i, $value); $btree->_children[$i + 1] = null; } elseif ($btree->_children[$i]->full()) { // Full child $pivot = $btree->_children[$i]->_keys[self::T - 1]; $btree->shiftUp($i, $pivot); $btree->_children[$i + 1] = $btree->_children[$i]->split(); self::insertNonFull($value, $btree->_children[$value->greaterThan($pivot) ? $i + 1 : $i]); } else { // Non-full child self::insertNonFull($value, $btree->_children[$i]); } }