一、填空题
1. 设T 和P 是两个给定的串,在T 中寻找等于P 的子串的过程称为_____,又称P 为_____。
【答案】模式匹配;模式串
2. 深度为H 的完全二叉树至少有_____个结点; 至多有_____个结点; H 和结点总数N 之间的关系是_____。
【答案】
3. 抽象数据类型的定义仅取决于它的一组_____,而与_____无关, 即不论其内部结构如何变化,只要它的_____不变,都不影响其外部使用。
【答案】逻辑特性;在计算机内部如何表示和实现;数学特性
4. 数据结构是研讨数据的_____和_____以及它们之间的相互关系,并对与这种结构定义相应的_____,设计出相应的_____。
;算法 【答案】逻辑结构;物理结构;操作(运算)
5. 数据结构中评价算法的两个重要指标是_____。
【答案】算法的时间复杂度和空间复杂度
6. 分别采用堆排序,快速排序,起泡排序和归并排序,对初态为有序的表,则最省时间的是_____算法,最费时间的是_____算法。
【答案】起泡;快速
,【解析】当初态为有序表时,冒泡排序只需要进行一趟比较即可,此时时间复杂度为〇(n ) 而快速排序算法需要比较的次数达到最大,时间复杂度为
7.
给定一组数据以它构造一棵哈夫曼树,则树高为_____,
带权路径长度
的值为_____。 【答案】5;96
【解析】每次找两个最小的权值构建哈夫曼树:
8. 若用n 表示图中顶点数目,则有_____条边的无向图成为完全图。
【答案】n (n-l )/2
【解析】无向完全图中任意一个顶点都和其他n-1个顶点都有一条边,即为n (n-l )。又因为每条边重复出现两次,所有无向完全图的边数为n (n-l )/2。
9. 设有一个空找,栈顶指针为1000H (十六进制),现有输入序列为1,2,3, 4, 5,经过PUSH ,PUSH , POP , PUSH , POP ,PUSH ,PUSH 之后,输出序列是_____,而栈顶指针值是_____。设栈为顺序栈,每个元素占4个字节。
【答案】23; 100CH
10.已知二维数组
为1000的连续存储区域时,
【答案】1196
【解析】设元素的行标为i ,列标为j 。则它的存储位置为:
中每个元素占4个单元,在按行优先方式将其存储到起始地址的地址是:_____。
二、算法设计题
11.以三元组表存储的稀疏矩阵A ,B 非零元个数分别为m 和n 。试用类杂度为O 所用结构。
【答案】算法如下:
语言编写时间复
的算法将矩阵B 加到矩阵A 上去。A 的空间足够大,不另加辅助空间。要求描述
12.设整数序列
【答案】算法如下:
给出求解最大值的递归程序。
13.已知P 是指向单向循环链表最后一个结点的指针,试编写只包含一个循环的算法,
将线性表
改造为
【答案】算法如下: