public Tree Find(Tree template) { Tree current = this; while (true) { int comparisonResult = current.Compare(template); if (comparisonResult == 0) { return(current); } if (comparisonResult < 0) { current = ((Tree)current._subsequent); } else { current = ((Tree)current._preceding); } if (current == null) { return(null); } } }
public static Tree FindSmaller(Tree a_in, Tree a_node) { if (a_in == null) { return(null); } int cmp = a_in.Compare(a_node); if (cmp < 0) { Tree node = FindSmaller(((Tree)a_in._subsequent), a_node); if (node != null) { return(node); } return(a_in); } return(FindSmaller(((Tree)a_in._preceding), a_node)); }
public static Tree FindSmaller(Tree a_in, Tree a_node) { if (a_in == null) { return(null); } var cmp = a_in.Compare(a_node); if (cmp < 0) { var node = FindSmaller(a_in._subsequent, a_node); if (node != null) { return(node); } return(a_in); } return(FindSmaller(a_in._preceding, a_node)); }
public static Tree FindGreaterOrEqual(Tree a_in, Tree a_finder) { if (a_in == null) { return(null); } int cmp = a_in.Compare(a_finder); if (cmp == 0) { return(a_in); } // the highest node in the hierarchy !!! if (cmp > 0) { Tree node = FindGreaterOrEqual(((Tree)a_in._preceding), a_finder); if (node != null) { return(node); } return(a_in); } return(FindGreaterOrEqual(((Tree)a_in._subsequent), a_finder)); }
public static Tree FindSmaller(Tree a_in, Tree a_node) { if (a_in == null) { return null; } int cmp = a_in.Compare(a_node); if (cmp < 0) { Tree node = FindSmaller(((Tree)a_in._subsequent), a_node); if (node != null) { return node; } return a_in; } return FindSmaller(((Tree)a_in._preceding), a_node); }
public static Tree FindGreaterOrEqual(Tree a_in, Tree a_finder) { if (a_in == null) { return null; } int cmp = a_in.Compare(a_finder); if (cmp == 0) { return a_in; } // the highest node in the hierarchy !!! if (cmp > 0) { Tree node = FindGreaterOrEqual(((Tree)a_in._preceding), a_finder); if (node != null) { return node; } return a_in; } return FindGreaterOrEqual(((Tree)a_in._subsequent), a_finder); }
public static Tree FindSmaller(Tree a_in, Tree a_node) { if (a_in == null) { return null; } var cmp = a_in.Compare(a_node); if (cmp < 0) { var node = FindSmaller(a_in._subsequent, a_node); if (node != null) { return node; } return a_in; } return FindSmaller(a_in._preceding, a_node); }