网友您好, 请在下方输入框内输入要搜索的题目:
题目内容
(请给出正确答案)
优先队列通常采用(请作答此空)数据结构实现,向优先队列中插入—个元素的时间复杂度为( )。
A.堆
B.栈
C.队列
D.线性表
B.栈
C.队列
D.线性表
参考答案
参考解析
解析:本题考查数据结构基础知识。普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出(largest-in,first-out)的行为特征。优先队列一般采用二叉堆数据结构实现,由于是二叉堆,所以插入和删除一个元素的时间复杂度均为O(lgn)。本题依次选A、C选项。
更多 “优先队列通常采用(请作答此空)数据结构实现,向优先队列中插入—个元素的时间复杂度为( )。A.堆 B.栈 C.队列 D.线性表” 相关考题
考题
队列的“先进先出”特性是指()。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 开始)。
考题
队列的“先进先出”特性是指()。A、最早插入队列中的元素总是最后被删除B、当同时进行插入、删除操作时,总是插入操作优先C、每当有删除操作时,总是要先做一次插入操作D、每次从队列中删除的总是最早插入的元素
考题
填空题在长度为n的队列中插入一个新元素的操作的时间复杂度为()
热门标签
最新试卷