判断题当从一个最小堆中删除一个元素时,需要把堆尾元素填补到堆顶位置,然后再按条件把它逐层向下调整,直到调整到合适位置为止。()A对B错

判断题
当从一个最小堆中删除一个元素时,需要把堆尾元素填补到堆顶位置,然后再按条件把它逐层向下调整,直到调整到合适位置为止。()
A

B


参考解析

解析:

相关考题:

以下哪一个不是栈的基本运算( )。A)往栈中任意位置插入一个元素B)从栈中删除一个元素C)把栈的栈顶元素读到变量中D)将栈置为空栈

堆插入一个具有最大值的元素时,需要逐层向上调整,直到被调整到根结点位置为止。此题为判断题(对,错)。

每次从无序表中取出一个元素,把它插入到有序表中的适当位置,此种排序方法叫做()排序。A.插入B.堆C.快速D.归并排序

试题四(共15分)阅读下列说明和C代码,回答问题1至问题 3,将解答写在答题纸的对应栏内。【说明】堆数据结构定义如下:在一个堆中,若堆顶元素为最大元素,则称为大顶堆;若堆顶元素为最小元素,则称为小顶堆。堆常用完全二叉树表示,图4-1 是一个大顶堆的例子。堆数据结构常用于优先队列中,以维护由一组元素构成的集合。对应于两类堆结构,优先队列也有最大优先队列和最小优先队列,其中最大优先队列采用大顶堆,最小优先队列采用小顶堆。以下考虑最大优先队列。假设现已建好大顶堆A,且已经实现了调整堆的函数heapify(A, n, index)。下面将C代码中需要完善的三个函数说明如下:(1)heapMaximum(A):返回大顶堆A中的最大元素。(2)heapExtractMax(A):去掉并返回大顶堆 A的最大元素,将最后一个元素“提前”到堆顶位置,并将剩余元素调整成大顶堆。(3)maxHeapInsert(A, key):把元素key插入到大顶堆 A的最后位置,再将 A调整成大顶堆。优先队列采用顺序存储方式,其存储结构定义如下:define PARENT(i) i/2typedef struct array{int *int_array; //优先队列的存储空间首地址int array_size; //优先队列的长度int capacity; //优先队列存储空间的容量} ARRAY;【C代码】(1)函数heapMaximumint heapMaximum(ARRAY *A){ return (1) ; }(2)函数heapExtractMaxint heapExtractMax(ARRAY *A){int max;max = A-int_array[0];(2) ;A-array_size --;heapify(A,A-array_size,0); //将剩余元素调整成大顶堆return max;}(3)函数maxHeapInsertint maxHeapInsert(ARRAY *A,int key){int i,*p;if (A-array_size == A-capacity) { //存储空间的容量不够时扩充空间p = (int*)realloc(A-int_array, A-capacity *2 * sizeof(int));if (!p) return -1;A-int_array = p;A-capacity = 2 * A-capacity;}A-array_size ++;i = (3) ;while (i 0 (4) ){A-int_array[i] = A-int_array[PARENT(i)];i = PARENT(i);}(5) ;return 0;}【问题 1】(10分)根据以上说明和C代码,填充C代码中的空(1)~(5)。【问题 2】(3分)根据以上C代码,函数heapMaximum、heapExtractMax和 maxHeapInsert的时间复杂度的紧致上界分别为 (6) 、 (7) 和 (8) (用O 符号表示)。【问题 3】(2分)若将元素10插入到堆A =〈15, 13, 9, 5, 12, 8, 7, 4, 0, 6, 2, 1〉中,调用 maxHeapInsert函数进行操作,则新插入的元素在堆A中第 (9) 个位置(从 1 开始)。

在含有n个关键字的小根堆(堆顶元素最小)中,关键字最大的记录有可能存储的位置是()。

要从一个顺序表删除一个元素时,被删除元素之后的所有元素均需()一个位置,移动过程是从()向()依次移动一个元素。

当向一个最小堆插入一个具有最小值的元素时,该元素需要逐层向上调整,直到被调整到堆顶位置为止。

表长为n的顺序存储的线性表,当在任何位置上删除一个元素的概率相等时,删除一个元素需移动元素的平均次数为()

当从一个小根堆中删除一个元素时,需要把()元素填补到()位置,然后再按条件把它逐层()调整。

向一个顺序栈插入一个元素时,首先使()后移一个位置,然后把待插入元素()到这个位置上。

要从一个顺序表删除一个元素时,被删除元素之后的所有元素均需()一个位置,移动过程是从()向()依次移动每一个元素。

从一个循环顺序队列删除元素时,首先需要()A、前移一位队首指针B、后移一位队首指针C、取出队首指针所指位置上的元素D、取出队尾指针所指位置上的元素

当从一个最小堆中删除一个元素时,需要把堆尾元素填补到堆顶位置,然后再按条件把它逐层向下调整,直到调整到合适位置为止。

设sp()为一个顺序存储的栈,变量top只是栈顶元素的位置,能做入栈操作的条件是()。如要把栈顶元素弹出并送到x中,则需执行下列语句()。

每次从无序表中取出一个元素,把它插入到有序表中的适当位置,此种排序方法叫做()排序。A、插入B、堆C、快速D、归并

要从一个顺序表删除一个元素时,被删除之后的所有元素均需()一个位置,移动过程是从()向()依次移动每一个元素。

当向一个大根堆插入一个具有最大值的元素时,需要逐层()调整,直到被调整到()位置为止。

填空题要从一个顺序表删除一个元素时,被删除元素之后的所有元素均需()一个位置,移动过程是从()向()依次移动一个元素。

单选题每次从无序表中取出一个元素,把它插入到有序表中的适当位置,此种排序方法叫做()排序。A插入B堆C快速D归并

填空题当从一个小根堆中删除一个元素时,需要把()元素填补到()位置,然后再按条件把它逐层()调整。

判断题当从一个最小堆中删除一个元素时,需要把堆尾元素填补到堆顶位置,然后再按条件把它逐层向下调整,直到调整到合适位置为止。A对B错

填空题当向一个大根堆插入一个具有最大值的元素时,需要逐层()调整,直到被调整到()位置为止。

填空题要从一个顺序表删除一个元素时,被删除元素之后的所有元素均需()一个位置,移动过程是从()向()依次移动每一个元素。

填空题要从一个顺序表删除一个元素时,被删除之后的所有元素均需()一个位置,移动过程是从()向()依次移动每一个元素。

单选题从一个循环顺序队列删除元素时,首先需要()A前移一位队首指针B后移一位队首指针C取出队首指针所指位置上的元素D取出队尾指针所指位置上的元素

判断题当向一个最小堆插入一个具有最小值的元素时,该元素需要逐层向上调整,直到被调整到堆顶位置为止。A对B错

填空题表长为n的顺序存储的线性表,当在任何位置上删除一个元素的概率相等时,删除一个元素需移动元素的平均次数为()

填空题向一个顺序栈插入一个元素时,首先使()后移一个位置,然后把待插入元素()到这个位置上。