堆是一种数据结构,( )是堆。A.(10,50,80,30,60,20,15,1

题库2022-08-02  45

问题 堆是一种数据结构,( )是堆。A.(10,50,80,30,60,20,15,18)B.(10,18,15,20,50,80,30,60)C.(10,15,18,50,80,30,60,20)D.(10,30,60,20,15,18,50,80)

选项 A.(10,50,80,30,60,20,15,18)
B.(10,18,15,20,50,80,30,60)
C.(10,15,18,50,80,30,60,20)
D.(10,30,60,20,15,18,50,80)

答案 B

解析 本题考查堆的相关知识。一个有n个元素的序列{k1,k2,…,kn},如果满足(ki <= k2i,ki<= k2i+1)则称为小顶堆,即根节点最小;如果满足(ki >= k2i,ki >= k2i+1)则称为大顶堆,即根节点最大。由堆的定义可以看出,在大顶堆中,第1个元素是所有元素的最大值。在小顶堆中,第1个元素是所有元素的最小值。根据这个定义,从给定的4个选项来看,如果是堆的话,一定是小顶堆,因为第1个元素10是所有元素中最小的元素。首先看选项A。第1个元素小于第2个元素50和第3个元素80,第2个元素50大于第4个元素30,因此不是堆。同理考察所有选项,可以得出B是堆。(10,18,15,20,50,80,30,60)转换为二叉树,如图下图所示。完全二叉树中所有非终端节点的值均不大于(或者不小于)其左、右孩子节点的值。因此答案为B选项。
转载请注明原文地址:https://tihaiku.com/congyezige/2418786.html

最新回复(0)