/// /// Compare items of Traversed in order List to verify if this is a binary Search Tree /// private bool IsBinarySearchTreeTraversingAll(SimpleNode<T> root) { _list = new List<T>(); TraverseInOrder(root); for(var idx=1; idx<_list.Count; idx++) { var prev = _list[idx-1]; var current = _list[idx]; if(prev.CompareTo(current) >= 0) return false; } return true; }
/// Calls Recursive function to a faster traverse to /// figure it out if this is a Binary Search Tree private bool IsBinarySearchTree_FasterOption(SimpleNode<T> root) { T prev = default(T); return IsBinarySearchTree_Rec(root, ref prev); }