3.2.32 #
解答 #
本题在原书后续印刷中已修改,这里仍然采用中文版的题目。
官网解答见:https://algs4.cs.princeton.edu/32bst/BST.java.html (isBST()
)
书中已经给出了答案,当然在 Java 和 C# 里,&&
总是从左向右计算的,而且遇到 false
会直接返回结果。
如果数据结构中存在环,IsOrdered
有可能会陷入无限递归的情况,因此调用顺序比较重要。
代码 #
public static bool IsBST(BST<TKey, TValue> bst)
{
return IsBinaryTree(bst) &&
IsOrdered(bst) &&
HasNoDuplicates(bst);
}
另请参阅 #
Boolean logical operators (C# reference)