Algorithm 上次插入操作的可能键是什么?最大堆
上面是Max-Heap,它是一系列插入和移除Max操作后的结果。 假设最后一个操作是insert。 上次插入操作的可能键是什么 我不确定的原因是,这个问题没有说明它是否已经被分类,因此它可以或不能被分类。但我可能又错了 附加问题:“删除最大操作”是否与“删除”相同,因为我以前没有遇到过这个术语,这将有助于澄清我的困惑Algorithm 上次插入操作的可能键是什么?最大堆,algorithm,data-structures,insert,heap,max-heap,Algorithm,Data Structures,Insert,Heap,Max Heap,上面是Max-Heap,它是一系列插入和移除Max操作后的结果。 假设最后一个操作是insert。 上次插入操作的可能键是什么 我不确定的原因是,这个问题没有说明它是否已经被分类,因此它可以或不能被分类。但我可能又错了 附加问题:“删除最大操作”是否与“删除”相同,因为我以前没有遇到过这个术语,这将有助于澄清我的困惑 谢谢 插入二进制堆的方法是将项放在堆的末尾,然后在堆中筛选到适当的位置 因此,如果显示的堆是上次插入操作后的堆,那么在插入开始时,堆必须只有10个项。新项目已放置在值11当前所在的
谢谢 插入二进制堆的方法是将项放在堆的末尾,然后在堆中筛选到适当的位置 因此,如果显示的堆是上次插入操作后的堆,那么在插入开始时,堆必须只有10个项。新项目已放置在值11当前所在的位置 如果该项目是从那里筛选出来的,那么它可能被筛选到的唯一位置就是数字13、18和20现在所在的位置。但是插入的数字不可能是20,因为如果是,那么18将是堆的根,而这是无效的(因为19大于18,所以19将是根) 因此,最后可能插入的值只有18、13和11 在插入之前,该树的分支可能是:
:添加11不需要任何交换[18,13]
:添加13,然后将其与11交换[18,11]
:添加18,然后在树上与11交换,然后与13交换[13,11]
20
/ \
18 19
/ \ / \
10 13 15 1
/\ /\
5 9 8 11