首页 > 试题广场 >

已知小顶堆:{51,32,73,23,42,62,99,14

[单选题]
已知小顶堆:{51,32,73,23,42,62,99,14,24,39,43,58,65,80,120},请问62对应节点的左子节点是
  • 99
  • 73
  • 3943
  • 120
这个题答案不对吧,如果存在3943,答案应该是65啊,解析的里面的堆建立的也不对
发表于 2019-04-11 21:09:24 回复(1)
完全二叉树定义:若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树
堆排序其中堆是一种特殊的完全二叉树,在完全二叉树中,根节点大于左右节点或者根节点小于左右节点的形式,其中根节点小于左右节点的称为小顶堆。
对于已知的含有14个数字的小顶堆{51,32,73,23,42,62,99,14,24,3943,58,65,80,120}
先按照完全二叉树将数字依次填入,填入后,找到最后一个最小结点(本示例为数字14的节点),从它的父节点(本示例为数字23的节点)开始调整。根据性质,小的数字往上移动;以此类推,直到调整到根节点.这里为了节省时间,直接把14和根节点对换。进行调整。
如下所示。


编辑于 2019-01-22 12:38:00 回复(6)
这个题应该题目打错了吧  3943 应该是 39 和43  这样下来结果才是73  否则是65
发表于 2019-08-24 16:07:32 回复(0)

答案应该是65吧!
构造小顶堆应该是遵守这几个原则的=吧:
  1. 将新元素增加到堆的末尾
  2. 按照优先顺序,将新元素与其父节点比较,如果新元素小于父节点则将两者交换位置。
  3. 不断进行第2步操作,直到不需要交换新元素和父节点,或者达到堆顶
  4. 最后通过得到一个最小堆

编辑于 2019-08-16 22:56:11 回复(0)