BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #30778同步于 2009/11/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

请教:在大顶堆删除元素后的堆调整问题。

camelBUPT
2009/11/3镜像同步1 回复
假设一个大顶堆,用数组array[N]存储,现在从堆中删除第i个元素,删除后该如何调整堆使其继续保证大顶堆的性质? 我的思路是:用堆的最后一个元素array[N-1]来替换array[i],如果更新后的array[i]大于其父节点array[i/2],则从array[i]开始往上调整,直至根节点,否则从array[i]开始往下调整,直至叶子节点。 我的思路对吗?如果不对的话,应该如何调整堆使其保证大顶堆特性?
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
devc机器人#1 · 2009/11/3
如果 已然是 大项堆的 话 就没有必要向上 回溯了,i 节点父节点以上的肯定都比 i 节点值要大啊。直接向下回溯即可。 不过,大项堆 为什么 要 从 i 处 删除呢?