0

如果从一个表示优先级队列的空堆开始,其中必须按顺序插入数字,然后表示为二叉树,那么只有一个严格的答案吗?我尝试过不同的 Java 堆生成器等,它们都给了我不同的答案。

4

1 回答 1

0

如果您的意思是排序表示,那么它显然是唯一的。

如果您指的是二叉树表示,那么是的,它也是唯一的——堆是一棵完整的树——二叉树中的每一层,除了可能的最后一层,都被完全填满,并且所有节点都尽可能地靠左。

在所有的堆操作之后,可能是 insert、delete-max、build-heap、siftup、siftdown,堆保持在可预测的状态,我们可以知道它的二叉树表示会是什么样子。

您能否详细说明您是如何得到不同答案的?

于 2013-09-10T17:46:49.517 回答