2017年合肥工业大学计算机与信息学院848软件工程学科专业基础综合之数据结构考研题库
● 摘要
一、填空题
1. 深度为H 的完全二叉树至少有_____个结点; 至多有_____个结点; H 和结点总数N 之间的关系是_____。 【答案】
2. 从用户的观点看,文件的逻辑结构通常可以区分为两类:一类是如NdBASE 中数据库文件那样的文件组织结构,称为_____文件:另一种是诸如用各种文字处理软件编辑成的文本文件,称为_____文件。从文件在存储器上的存放方式来看,文件的物理结构往往可区分为三类,即_____,_____和_____。B+树适用于组织_____的索引结构,m
阶
个关键码。
【答案】数据库;文本;顺序组织;随机组织;链组织;随机组织;
3. 属于不稳定排序的有_____。
【答案】希尔排序、简单选择排序、快速排序、堆排序等
4. 在单链表L 中,指针P 所指结点有后继结点的条件是_____ 【答案】
【解析】指针所指节点的指针域所指向的元素非空,说明该指针所指节点有后继结点。
5. 模式串的next 函数值序列为_____。
【答案】01122312
6. 求图的最小生成树有两种算法,_____算法适合于求稀疏图的最小生成树e
【答案】克鲁斯卡尔
【解析】克鲁斯卡尔算法是一种按权值的递增次序选择合适的边来构造最小生成树的方法,这种算法中,采用堆来存放边的集合,适合于边稀疏而顶点较多的图。
7. 栈是_____的线性表,其运算遵循_____的原则。
;后进先出 【答案】操作受限(或限定仅在表尾进行插入和删除操作)
8. 已知链队列的头尾指针分别是f 和r , 则将值x 入队的操作序列是_____。 【答案】
树每个结点至多有_____个儿子,除根结点外每个结点至少有_____个儿子,根结点至少有_____个儿子,有k 个儿子的结点必有_____
【解析】队列采用链式存储结构,先分配一个节点的内存,然后在队尾添加该节点。
9. 用循环链表表示的队列长度为n ,若只设头指针,则出队和入队的时间复杂度分别是_____和_____;若只设尾指针,则出队和入队的时间复杂度分别是_____和_____。 【答案】
【解析】队列的出队操作即删除队头的元素,队列的入队操作即在队尾添加元素,循环链表只设头指针,出队时,只要把头结点的下一个结点删除就好了,入队时,要把新的结点插入队尾,必须把队列遍历,找到队尾指针,才能插入。循环队列只设尾指针,出队时只要把为指针的下一个结点或者下下个结点删除即可,入队时,只要在尾指针的后面插入新的结点,并更新尾结点即可。
10.索引顺序文件既可以顺序存取,也可以_____存取。
【答案】随机
二、判断题
11.在平衡二又树中,向某个平衡因子不为零的结点的树中插入一新结点,必引起平衡旋转。( )
【答案】×
【解析】不一定,比如一个平衡因子为1的结点,这时往它的右部插入一个新结点,就不会引起平衡旋转
12.树中的结点和图中的顶点就是指数据结构中的数据元素。( )
【答案】√
【解析】树中的结点和图中的顶点就是指数据结构中的数据元素,而它们的边指的是元素之间的关系。
13.排序的稳定性是指排序算法中的比较次数保持不变,且算法能够终止。( )
【答案】×
【解析】排序的稳定性指:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,且ri 在rj 之前,而在排序后的序列中,ri 仍在rj 之前,则称这种排序算法是稳定的;否则称为不稳定的。
14.完全二叉树肯定是平衡二叉树。( )
【答案】×
【解析】从平衡因子定义看,完全二叉树任一结点的平衡因子的绝对值确实是小于等于1。但是,平衡二叉树本质上是二叉排序树,完全二叉树不一定是排序树。故不能说完全二叉树是平衡二叉树。
15.直接访问文件也能顺序访问,只是一般效率不高。( )
【答案】×
【解析】直接访问文件不能进行顺序访问,只能按关键字随机存取。在ISAM 文件上检索记录时,先从主索引出发找到相应的柱面索引,再从柱面索引找到记录所在柱面的磁道索引,最后从磁道索引找到记录所在磁道的第一个记录的位置,由此出发在该磁道上进行顺序查找直至找到为止。
16.顺序存储结构的主要缺点是不利于插入或删除操作。( ) 【答案】
【解析】因为顺序表的插入删除会移动大量的元素。
17.中序遍历一棵二叉排序树的结点就可得到排好序的结点序列。( )
【答案】√
【解析】二叉排序树是的父结点和左右子树的值的大小是确定的。
18.采用线性探测法处理散列时的冲突,当从哈希表删除一个记录时,不应将这个记录的所在位置置空,因为这会影响以后的查找。( )
【答案】√
【解析】从哈希表删除一个记录,不是将这个记录的位置置空,而是设置一个标记,标记这个元素是无效的了。
19.—棵树中的叶子数一定等于与其对应的二叉树的叶子数。( )
【答案】×
【解析】一颗树的叶子树与它对一个的二叉树的叶子树没有直接联系。不妨举例:假设一个有三个结点的二叉树,层数为2。则它的叶结点数为2。将其按规则转为对应的二叉树时,则它的叶结点数为1。
20.数组不适合作为任何二叉树的存储结构。( )
【答案】×
【解析】对于完全二叉树,因为其n 个结点的位置已经固定,所以用一维数组作为存储结构是高效率的(存储密度大)。
三、算法设计题
21.编写算法,求二叉树的宽度。
【答案】算法如下:
int Width (BiTree bt) //求二叉树bt 的最大宽度