public override Element addTuple(int level, Tuple tuple) { float dimValue = tuple.getDimensionValue(dim); ++count; bool addLeft; if (dimValue < maxLeft) { addLeft = true; } else if (dimValue > minRight) { addLeft = false; } else if (dimValue == maxLeft) { if (dimValue == minRight) { if (eleLeft.count < eleRight.count) { addLeft = true; } else { addLeft = false; } } else { addLeft = true; } } else if (dimValue == minRight) { addLeft = false; } else { if (eleLeft.count < eleRight.count) { addLeft = true; } else { addLeft = false; } } if (addLeft) { if (dimValue < minLeft) { minLeft = dimValue; } else if (dimValue > maxLeft) { maxLeft = dimValue; } eleLeft = eleLeft.addTuple(level + 1, tuple); } else { if (dimValue < minRight) { minRight = dimValue; } else if (dimValue > maxRight) { maxRight = dimValue; } eleRight = eleRight.addTuple(level + 1, tuple); } return(this); }
/** * Iterate through all of your data points, calling addTuple * @param tuple */ public void addTuple(Tuple tuple) { eleRoot = eleRoot.addTuple(0, tuple); }