java - 在 Java 中测试两个 BST 是否相等

标签 java equality binary-search-tree

我想测试两个给定的 BST(二叉搜索树)在 Java 中是否相等。 BST 节点没有指向父节点的指针。

最简单的解决方案是遍历两个 BST,创建两个遍历列表并测试列表是否相等。但是它需要 O(N) 内存。

我想尝试另一种方法:创建一个 Iterator,它遍历 BST,然后......剩下的就很明显了。

有意义吗?是否有任何“更好”(更简单和高效)的解决方案来测试两个 BSTs 是否相等?

最佳答案

  1. 二叉搜索树是一棵树,对吧?

  2. 如果两棵树具有相同的根和相同的 child ,则它们是相等的。

  3. 每个 child 也是一棵树。

  4. 参见第 2 点。

提示: .内存消耗为O(logn)(自己证明)。

关于java - 在 Java 中测试两个 BST 是否相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11499495/

相关文章:

java - 解码parcelables的问题

java - 将多个表返回到 spring jdbc 模板的存储过程

java - 如何使用 JUnit 和 Mockito 测试 void 方法?

python - 集合类的 __eq__ 方法的一个很好的例子是什么?

c# - 在 C# 中测试泛型集合的引用相等性是一个愚蠢的想法吗?

algorithm - rBST 的计算概率

java - JProgressBar - 在我调用它的类中不起作用

Dart int 和 double 被拘留?被相同()特殊对待?

java - 删除Java中二叉搜索树的方法实现?

c++ - 为什么我的代码无法在二进制搜索树中正确执行预购表格?