1、数据结构一、单项选择题(本大题共 10 小题,每小题 3 分,共 30 分)1、若进栈的序列为 1,2 ,3,4,则不可能得到的出栈序列是( ) 。A. 3,2,1,4 B. 3,2,4,1 C. 4,2,3,1 D. 2,3,4,12、深度为k的完全二叉树所含叶结点的个数最多为( ) ,设根结点在第1 层上。A. 2k B. 2k-1C. k D. 2k-13、衡量查找算法效率的主要标准是( ) 。A. 元素个数 B. 所需的存储量 C. 平均查找长度 D. 算法难易程度4、与线性表的顺序存储不相符的特性是( )。A. 插入和删除操作灵活 B. 需要连续的存储空间 C. 便于随机访问 D.
2、存储密度大5、若进队序列为1 ,2 ,3,则出队序列是( )。A. 3,2,1 B. 1,2,3 C. 1,3,2 D. 3,1,26、不带头结点的单链表L 为空的判定条件是( )。A. L=NULL B. L-next=NULLC. L-next=L D. L!=NULL7、union(A,B,C) 表示求集合 A 和 B 的并集 C。若 A=a,b,c,B=c,d,则 union(A,B,C)运算后 C=( )。Aa,b,c,d Ba,b,cCa,b Dc,d8、数组A中,每个元素的长度为3个存储单元,行下标i从1到5 ,列下标j从1到6,从首地址SA 开始连续存放在存储器内,存放该数组至
3、少需要的存储单元数是( )。A. 90 B. 70C. 50 D. 309、遍历一棵具有n 个结点的二叉树,在先序序列、中序序列和后序序列中所有叶子结点的相对次序( )。A. 都不相同 B. 完全相同C. 先序和中序相同 D. 中序和后序相同10、用给定的哈夫曼编码来压缩数据文件,其压缩效率主要取决于( )。A. 文件长度 B. 平均码长C. 被压缩文件的特征 D. 以上都不是1、设有如下遗产继承规则:丈夫和妻子可以互相继承遗产,子女可以继承父亲或母亲的遗产,子女间不能相互继承,则表示该遗产继承关系的最合适的数据结构应该是( ) 。A. 树 B. 图 C. 数组 D. 二叉树2、下列排序中,占
4、用辅助空间最多的是( ) 。A. 堆排序 B. 冒泡排序 C. 直接选择排序 D. 二路归并3、排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为( ) 。A. 选择排序 B. 冒泡排序C. 希尔排序 D. 插入排序4、在待排序序列局部有序的情况下,最好的内部排序应该是( )。A. 直接选择排序 B. 堆排序 C. 直接插入排序 D. 快速排序5、下列排序算法中不稳定的是( )。A. 直接选择排序 B. 直接插入排序 C. 起泡排序 D. 归并排序6、当利用大小为N的数组顺序存储一个栈时,假定用top=N 表示栈空,则向
5、这个栈插入一个元素时,首先应执行( )语句修改top指针。A. top+ B. top-C. top=0 D. top=N-17、在一个带头结点的双向循环链表中,若要在p所指向的结点之前插入一个新结点,则需要相继修改( )个指针域的值。A. 2 B. 3C. 4 D. 58、利用3,6,8,12,5,7这六个值作为叶子结点的权,生成一棵哈夫曼树,该树的深度为( )。A. 3 B. 4C. 5 D. 69、在一个具有n 个顶点和e条边的有向图的邻接表中,保存顶点单链表的表头指针向量的大小至少为( )。A. n B. 2nC. e D. 2e10、index(s,t)表示子串定位运算。若串t是串s
6、的子串,则函数返回值是串t在串s中第一次出现的开始位置,否则返回值是0。若s=“ababa“,t=“ba“,则index(s,t)=( )。A. 0 B. 1C. 2 D. 3二、判断题(本大题共 15 小题,每小题 2 分,共 30 分)1、栈和队列逻辑上都是线性结构。 (A.正确)2、算法的优劣与算法描述语言无关,但与所用计算机有关。(B.错误)3、在n个结点的无向图中,若边数大于 n-1,则该图必是连通图。(B.错误)4、空串是任意串的子串。(A.正确)5、快速排序并非在任何情况下都比其他排序方法速度快。(A.正确)6、 通 常 把 串 s 称 为 主 串 , 串 t 称 为 模 式 串
7、 , 从 主 串 s 中 查 找 与 模 式 串 t 完 全 相 同 的 子 串 的 过 程 叫 做 模 式 匹 配 。( A.正 确 )7、堆排序是一种选择排序。(A.正确)8、排序的稳定性是指排序算法中的比较次数保持不变,且算法能够终止。(B.错误)9、文件是性质相同的记录的集合,文件通常存储在外存上。 (A.正确)10、散列文件的优点是存取速度通常比索引文件更快,插入删除方便,不需要索引区。 (A.正确)11、用邻接矩阵法存储一个图所需的存储单元数目与图的边数有关。 (B.错误)12、无向图的邻接矩阵一定是对称矩阵,有向图的邻接矩阵一定是非对称矩阵。 (B.错误)13、散列函数越复杂越好
8、,因为这样随机性好,冲突概率小。 (B.错误) 14、负载因子(装填因子)是散列表的一个重要参数,它反映散列表的装满程度。 (A.正确)15、交换排序的基本思想是两两比较待排序记录的排序码,并交换不满足顺序要求的那些偶对,直到全部满足顺序要求为止。 (A.正确)1、算法的有穷性是指一个算法必须总是(对任何合法的输入)在执行有穷步之后结束,且每一步都可在有穷时间内完成。 (A.正确)2、算法的时间复杂度不仅仅依赖于问题的规模,也取决于输入实例的初始状态。 (A.正确)3、链式存储方法,它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点的逻辑关系由存储单元的邻接关系来体现。 (B.错误)4
9、、在栈中,出栈操作的时间复杂度为 O(n)。 (B.错误)5、栈和队列的共同特点是先进先出。 (B.错误)6、在用单链表表示的线性表中,从任何一个结点都能通过 next 域找到它的后继和前驱。 (B.错误)7、 数 据 结 构 的 概 念 包 括 数 据 之 间 的 逻 辑 结 构 、 数 据 在 计 算 机 中 的 存 储 方 式 和 数 据 的 运 算 三 个 方 面 。 (A.正 确 )8、给定一棵二叉树结点的先序序列和中序序列就可以唯一地确定一棵二叉树。 (A.正确)9、difference(A,B,C)表示求集合A和B的差集C。 ( A.正确)10、完全二叉树中,若一个结点没有左孩子
10、,则它必是树叶。(A.正确)11、字典是一种特殊的集合,其中每个元素由关键码和属性组成。(A.正确)12、若 n 阶方阵的对角线右上方的元素均等于零,称为下三角矩阵。 (A.正确)13、哈希表查找无须进行关键字的比较。( B.错误 )14、直接选择排序是一种不稳定的排序方法。 (A. 正确)15、倒排文件的优点是加快查找速度,尤其在处理多个次关键字查找时,查询速度更佳。(A.正确)三、填空题(本大题共 5 个空,每空 3 分,共 15 分)1、允许在表的一端插入和删除的线性表称为 栈 。2、一个算法的时间复杂度为(n 2+2nlog2n) ,其数量级表示为 O(n2) 。3、高度为 5 的完全
11、二叉树 T 中最多有 31 个结点。4、若一棵完全二叉树中有 90 个结点,其中有 45 个叶子结点。5、设森林 F 中有四棵树,第一、第二、第三和第四棵树的结点个数分别为 50、40、30 和 20。由森林F 转换的二叉树中,根结点的左子树上的结点个数是 49 。1、在有 n 个结点的无向图中,其边数最多为 n(n-1)/2 。2、有向图 G 用邻接矩阵 Ann存储,矩阵中元素值 1 代表有弧,0 代表无弧,其 i(0in-1)行的所有元素之和等于顶点 i 的 出 度。3、设 30 个整数按从小到大顺序存于一维数组 A30中,若用二分法进行查找,需要进行 5 次比较查找成功的整数个数为 15
12、 。4、二叉排序树在进行 中序 遍历所输出的关键字序列是递增的有序序列。5、对32个记录进行二路归并排序时,共需进行 5 趟归并。四、简答题(本大题共 3 小题,每小题 5 分,共 15 分)1、设广义表 L=(a,b),c,(d,e),f),h), 求广义表 L 的长度和深度;广义表 L 的表头和表尾分别是什么?1、答:表 L 的长度是 4。 (1 分) 深度是 3。 (1 分)表 L 的表头是(a,b)。 (1 分) 表尾是(c,(d,e),f),h) 。 ( 2 分)2、设二叉树中每个结点的数据域值为一个字母,请画出先序序列是 bcd 的所有不同形态的二叉树。2、答:(下列每图 1 分)
13、bdcbcc ccddd db bb3、对整数序列 50,40,20,12,80,18按从小到大顺序进行排序,请分别写出直接选择排序和二路归并排序的第一趟排序结果。3、答: 直接选择排序第一趟排序结果:12,40,20,50,80,18 (3 分)二路归并排序第一趟排序结果:40,50,12,20,18,80 (2 分)1、将下列森林转换成一棵二叉树。G PRECDMKH1、答:GCDHPREKM2、设有一组关键字 22, 41,53,46,30 ,13 , 42,67,78,散列函数 H(k)=k % 10,采用散列表的线性探查法解决冲突。试在 0 到 9 的散列地址空间内对该关键字构造散列
14、表,并求出在等概率的情况下,查找成功时的平均查找长度。2、答:(1) 用函数计算散列地址如下: H(22)=2;H(41)=1;H(53)=3 ;H(46 )=6;H(30)=0;H(13)=3(冲突)=4; H(42)= 2(冲突)=3(冲突)=4(冲突)=5;H(67)= 7;H(78)=8;构造的散列表如下: 0 1 2 3 4 5 6 7 8 930 41 22 53 13 42 46 67 78成功探查 1 1 1 1 2 4 1 1 1(2)在等概率情况下,查找成功的平均查找长度:ASLs 成功=(1+1+1+1+2+4+1+1+1 )/9=13/9 3、给定的整数序列 58, 3
15、4, 90, 20, 80, 98, 18, 27进行从小到大排序时,请写出直接选择排序、归并排序的第一趟排序结果。3、答: 直接选择排序一趟排序结果:18,34,90,20,80,98,58,27 归并排序一趟排序结果:34,58,20,90,80,98,18,27 五、算法题(本大题 1 小题,共 10 分)1、已知一整型数组 r,编写一个函数,每输入一个数组元素的下标,便输出相应的数组元素的值,输入-1 时结束。1、void f(int r) / (此语句 2 分)int i;scanf(“%d”, / (此语句 2 分)while(i!=-1) / (此语句 2 分)printf(“%
16、d”,ri); / (此语句 2 分)scanf(“%d”, / (此语句 2 分)1、已知二叉树以二叉链表作存储结构,阅读算法并回答下列问题:(1) 该算法的功能是什么?(2) 算法中 n 的作用是什么?二叉链表中结点类型定义为:typedef struct nodechar data;struct node * lchild,*rchild;BTNode;int unknown (BTNode *t,int n) if (t) if(t-lchild & t-rchild)n+;n=unknown(t-lchild,n);n=unknown(t-rchild,n);return n;1、答:(1)该算法的功能是计算二叉树中度为 2 的结点个数,(2)算法中 n 的作用是保存度为 2 的结点个数。