Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果从一个表示优先级队列的空堆开始,其中必须按顺序插入数字,然后表示为二叉树,那么只有一个严格的答案吗?我尝试过不同的 Java 堆生成器等,它们都给了我不同的答案。
如果您的意思是排序表示,那么它显然是唯一的。
如果您指的是二叉树表示,那么是的,它也是唯一的——堆是一棵完整的树——二叉树中的每一层,除了可能的最后一层,都被完全填满,并且所有节点都尽可能地靠左。
在所有的堆操作之后,可能是 insert、delete-max、build-heap、siftup、siftdown,堆保持在可预测的状态,我们可以知道它的二叉树表示会是什么样子。
您能否详细说明您是如何得到不同答案的?