3.2.33

3.2.33 #

解答 #

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

按照题目要求实现即可,分为两步进行测试。

代码 #

public static bool IsRankConsistent(BST<TKey, TValue> bst)
{
    for (var i = 0; i < bst.Size(); i++)
    {
        if (i != bst.Rank(bst.Select(i)))
        {
            return false;
        }
    }

    foreach (var key in bst.Keys())
    {
        if (key.CompareTo(bst.Select(bst.Rank(key))) != 0)
        {
            return false;
        }
    }

    return true;
}

另请参阅 #

BinarySearchTree 库