[计算机类试卷]软件水平考试中级软件设计师下午应用技术(数据结构)模拟试卷1及答案与解析.doc
《[计算机类试卷]软件水平考试中级软件设计师下午应用技术(数据结构)模拟试卷1及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]软件水平考试中级软件设计师下午应用技术(数据结构)模拟试卷1及答案与解析.doc(4页珍藏版)》请在麦多课文档分享上搜索。
1、软件水平考试中级软件设计师下午应用技术(数据结构)模拟试卷 1及答案与解析 一、必答题(共 4道大题,每道大题 15分) 0 阅读下列说明和 C代码,回答问题 1至问题 3,将解答写在答题纸的对应栏内。 【说明】 堆数据结构定义如下。 对于 n个元素的关键字序列 a1, a2 , an,当且仅当满足下列关系时称其为堆:在一个堆中,若堆项元素为最大元素,则称为大顶堆;若堆顶元素为最小元素,则称为小项堆。堆常用完全二叉树表示,图 8 11是一个大顶堆的例子。 堆数据结构常用于优先队列中,以维护由一组元素构成的集合。对 应于两类堆结构,优先队列也有最大优先队列和最小优先队列,其中最大优先队列采用大顶
2、堆,最小优先队列采用小顶堆。以下考虑最大优先队列。 假设现已建好大项堆 A,且已经实现了调整堆的函数 heapify(A, n, index)。 下面将 C代码中需要完善的 3个函数说明如下。 (1)heapMaximum(A):返回大顶堆 A中的最大元素。 (2)heapExtractMax(A):去掉并返回大顶堆 A的最大元素,将最后一个元素 “提前 ”到堆顶位置,并将剩余元素调整成大顶堆。 (3)maxHeapInsert(A, key):把元 素key插入到大顶堆 A的最后位置,再将 A调整成大顶堆。优先队列采用顺序存储方式,其存储结构定义如下: #define PARENT(i)i
3、2typedef struct array int *int_array;优先队列的存储空间首地址 int array_size;优先队列的长度 int capacity;优先队列存储空间的容量 ARRAY;【 C代码】 (1)函数heapMaximum int heapMaximum(ARRAY*A)return_(1); (2)函数heapExtractMaxint heapExtractMax(ARRAY *A) int max; max=A- int array0; _(2); A- array size-; Heapify(A, A- array size, 0);将剩余元素调整成大
4、顶堆 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 return 0; 1 根据以上说明和 C代 码,填充
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 软件 水平 考试 中级 设计师 下午 应用技术 数据结构 模拟 答案 解析 DOC
