private Tree RotateSmallestUp() { if (_preceding != null) { _preceding = _preceding.RotateSmallestUp(); return(RotateRight()); } return(this); }
public virtual Tree Remove() { if (_subsequent != null && _preceding != null) { _subsequent = _subsequent.RotateSmallestUp(); _subsequent._preceding = _preceding; _subsequent.CalculateSize(); return(_subsequent); } if (_subsequent != null) { return(_subsequent); } return(_preceding); }