问题
单项选择题
堆是一种数据结构,()是堆。
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)如果满足[*]则称为小顶堆:如果满足[*]则称为大顶堆。由堆的定义可以看出,在大顶堆中,第1个元素是所有元素的最大值。在小顶堆中,第1个元素是所有元素的最小值。
根据这个定义,从给定的4个选项来看,如果是堆的话,一定是小顶堆,因为第1个元素10是所有元素中最小的元素。
首先看选项A。第1个元素小于第2个元素50和第3个元素80,第2个元素50大于第4个元素30,因此不是堆。按照这种方式,考察所有选项,可以得出B是堆。其对应的树形表示如图4-1所示。
[*]