public void Insert(long dValue) { var currNode = root; var newItem = new _234DataItem(dValue); while (true) { if (currNode.IsFull()) { // Split this node Split(currNode); currNode = GetNextChild(currNode.GetParent(), dValue); } else if (currNode.IsLeaf()) // Insert here { break; } else // go deeper - curNode is not full and is not leaf { currNode = GetNextChild(currNode, dValue); } } currNode.InsertItem(newItem); }
public int InsertItem(_234DataItem newItem) { numItems++; long newKey = newItem.dData; for (int i = ORDER - 2; i >= 0; i--) { if (itemArray[i] == null) { continue; } else { var thisKey = itemArray[i].dData; if (newKey < thisKey) { itemArray[i + 1] = itemArray[i]; } else { itemArray[i + 1] = newItem; return(i + 1); } } } itemArray[0] = newItem; return(0); }