3.2.32

上次更新:2019-10-06
发现了题解错误/代码缺陷/排版问题?请点这里:如何:提交反馈

解答

本题在原书后续印刷中已修改,这里仍然采用中文版的题目。

官网解答见:https://algs4.cs.princeton.edu/32bst/BST.java.htmlisBST()

书中已经给出了答案,当然在 Java 和 C# 里,&& 总是从左向右计算的,而且遇到 false 会直接返回结果。

如果数据结构中存在环,IsOrdered 有可能会陷入无限递归的情况,因此调用顺序比较重要。

代码

public static bool IsBST(BST<TKey, TValue> bst)
{
    return IsBinaryTree(bst) &&
           IsOrdered(bst) &&
           HasNoDuplicates(bst);
}

另请参阅

Boolean logical operators (C# reference)

Equality, Relational, and Conditional Operators

BinarySearchTree 库

上一题 下一题