当前位置:中级软件设计师题库>数据结构题库

问题:

[单选] 在KMP模式匹配算法中,需要求解模式串p的next函数值,其定义如下(其中,j为模式串字符的序号)。对于模式串"abaabaca",其next函数值序列为()

01111111。01122341。01234567。01122334。

问题:

[单选] 对于线性表(由n个同类元素构成的线性序列),采用单向循环链表存储的特定之一是()

从表中任意节点出发都能遍历整个链表。对表中的任意节点可以进行随机访问。对于表中的任意一个节点,访问其直接前趋和直接后继节点所用时间相同。第一个节点必须是头节点。

问题:

[单选] 无向图中一个顶点的度是指图中与该顶点相邻接的顶点数。若无向图G中的顶点数为n,边数为e,则所有顶点的度数之和为()

n×e。n+e。2n。2e。

问题:

[单选] 一棵满二叉树,其每一层节点个数都达到最大值,对其中的节点从1开始顺序编号,即根节点编号为1,其左、右孩子节点编号分别为2和3,再下一层从左到右的编号为4、5、6、7,依次类推,每一层都从左到右依次编号,直到最后的叶子节点层为止,则用()可判定编号为m和n的两个节点是否在同一层。

['['log2m=log2n。

问题:

[单选] ()是由权值集合{8,5,6,2}构造的哈夫曼树(最优二叉树)。

问题:

[问答题,案例分析题] 阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。 说明:堆数据结构定义如下。对于n个元素的关键字序列(a1,a2,...,an),当且仅当满足下列关系时称其为堆:在一个堆中,若堆顶元素为最大元素,则称为大顶堆;若堆顶元素为最小元素,则称为小顶堆。堆常用完全二叉树表示,图8.11是一个大顶堆的例子。堆数据结构常用于优先队列中,以维护由一组元素构成的集合。对应于两类堆结构,优先队列也有最大优先队列和最小优先队列,其中最大优先队列采用大顶堆,最小优先队列采用小项堆。以下考虑最大优先队列。假设现已建好大顶堆A,且已经实现了调整堆的函数heapify(A,n,index)。下面将C代码中需要完善的3个函数说明如下。 (1)heapMaximum(A):返回大顶堆A中的最大元素。 (2)heapExtractMax(A):去掉并返回大顶堆A的最大元素,将最后一个元素"提前"到堆顶位置,并将剩余元素调整成大顶堆。( 3)maxHeapInsert(A,key):把元素key插入到大顶堆A的最后位置,再将A调整成大顶堆。优先队列采用顺序存储方式,其存储结构定义如下:C代码: