如果以表示优先级队列的空堆开始,其中数字必须按顺序插入然后表示为二叉树,那么只有一个严格的答案吗?我尝试过不同的Java堆生成器等,它们都给了我不同的答案。
答案 0 :(得分:0)
如果你的意思是排序的表示,那么它显然是唯一的。
如果你的意思是二叉树表示,那么它也是唯一的 - 一个堆是一个完整的树 - 二进制树,其中每个级别,除了可能是最后一个,都被完全填充,并且所有节点尽可能地离开。
在所有堆操作之后,可能是insert,delete-max,build-heap,siftup,siftdown,堆仍处于可预测状态,我们可以知道它的二叉树表示将如何等。
你能否详细说明你如何得到不同的答案?