数据结构|堆|问题6

对上一个问题的正确答案执行两次删除操作后,数组的内容是什么? (A) 14,13,12,10,8 (B) 14,12,13,8,10 (C) 14,13,8,12,10 (D) 14,13,12,8,10 答复: (D) 说明: 对于堆树,删除节点包括以下两个操作。

null

1) 用最后一级的最后一个元素替换根。 2) 从根开始,将整棵树从上到下排列。。

让我们逐个删除这两个节点: 1) 删除25项: 用12代替25

          12
        /    
      /       
    14        16
   /          /
 /           /
13     10    8

由于根违反了heap属性(16大于12),所以将16作为树的根。

           16
        /     
      /        
    14         12
   /          /
  /          /
13     10    8

2) 删除16项: 用8代替16

           8
        /    
       /      
    14         12
   / 
  /   
 13     10

从根到底都是健康的。

           14
         /    
       /       
     8         12
    / 
   /   
 13     10
            14
         /     
        /       
     13         12
    / 
   /   
  8    10

这个问题的小测验

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享