级数据结构A及答案.docx
- 文档编号:2226614
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:14
- 大小:81.01KB
级数据结构A及答案.docx
《级数据结构A及答案.docx》由会员分享,可在线阅读,更多相关《级数据结构A及答案.docx(14页珍藏版)》请在冰豆网上搜索。
级数据结构A及答案
浙江工商大学2006/2007学年第一学期考试试卷
课程名称:
《数据结构》考试方式:
闭卷完成时限:
120分钟
班级名称:
学号:
姓名:
题号
一
二
三
四
五
六
总分
分值
10
10
10
14
20
36
100
得分
阅卷人
一.判断题(每题1分,共10分)
1、数据结构概念包括数据之间的逻辑结构,数据在计算机中的存储方式和数据的运算三个方面。
................................()
2、数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构相关,是依赖于计算机的。
................................()
3、线性表中的每个结点最多只有一个直接前驱和一个直接后继。
..................................................()
4、线性的数据结构可以顺序存储,也可以链接存储。
非线性的数据结构只能链接存储。
........................................()
5、二维数组是其数组元素为线性表的线性表。
................()
6、单链表形式的队列,头指针F指向队列的第一个结点,尾指针R指向队列的最后一个结点。
..................................()
7、由一棵二叉树的前序序列和后序序列可以唯一确定它。
......(错)
8、在数据的存放无规律而言的线性表中进行查找的最佳方法是顺序查找(线性查找)。
......................................()
9、多重表文件和倒排文件都归属于多关键字文件。
............()
10、不定长文件是指文件的长度不固定。
.....................()
二.填空题(每题1分,共10分)
1、若将数据结构形式定义为二元组(D,R),其中D是数据元素的有限集合,则R是D上关系的有限集合。
2、在一个带头结点的单循环链表中,p指向尾结点的直接前驱,则指向头结点的指针head可用p表示为。
3、若不带头结点的单链表的头指针为head,则该链表为空的判定条件是。
4、对于顺序存储的栈,因为栈的空间是有限的,在进行运算时,可能发生栈的上溢,在进行运算时,可能发生栈的下溢。
5、树的存储结构常见的有双亲表示法,孩子链表法,孩子-兄弟表示法。
6、深度为k的完全二叉树至少有个结点,至多有个结点。
7、一棵有n个结点的满二叉树有0个度为1的结点、有(n-1)/2个分支(非终端)结点和(n+1)/2个叶子,该满二叉树的深度为log2n+1。
8、大多数排序算法都有两个基本的操作和。
9、线性有序表(a1,a2,a3,…,a256)是从小到大排列的,对一个给定的值k,用二分法查找表中与k相等的元素,在查找不成功的情况下,最多需要查找8次。
设有100个结点,用二分法查找时,最大比较次数是7。
10、设要将序列(Q,H,C,Y,P,A,M,S,R,D,F,X)中的关键字按字母序的升序重新排列,则:
冒泡排序一趟扫描的结果是;初始步长为4的希尔(shell)排序一趟的结果是;快速排序一趟扫描的结果是。
三.选择题(每题1分,共10分)
1、算法指的是()
A.计算机程序B.解决问题的计算方法
C.排序算法D.解决问题的有限运算序列
2、线性表采用链式存储时,结点的存储地址()
A.必须是不连续的B.连续与否均可
C.必须是连续的D.和头结点的存储地址相连续
3、将长度为n的单链表链接在长度为m的单链表之后的算法的时间复杂度为()
A.O
(1)B.O(n)C.O(m)D.O(m+n)
4、已知指针p所指结点不是尾结点,若在*p之后插入结点*s,则应执行操作()
A.s->link=p;p->link=s;
B.s->link=p->link;p->link=s;
C.s->link=p->link;p=s;
D.p->link=s;s->link=p;
5、若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不可能出现的出栈序列是(D)
A.2,4,3,1,5,6 B.3,2,4,1,6,5
C.4,3,2,1,5,6 D.2,3,5,1,6,4
6、判断线索二叉树中p节点有右孩子的条件是(C)
A.p!
=NULLB.p->rchild!
=NULL
C.p->rtag==0D.p->rtag==1
7、若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(B)
A.9B.11C.15D.不确定
8、在表长为n的链表中进行线性查找,它的平均查找长度为()
A.ASL=nB.ASL=(n+1)/2
C.ASL=+1D.ASL=log2(n+1)-1
9、对22个记录的有序表作折半查找,当查找失败时,至少需要比较(5)次关键字。
A.3B.4C.5D.6
10、在二叉排序树中,每个结点的关键字A,B一棵二叉排序,即可得到排序序列。
同一个结点集合,可用不同的二叉排序树表示,人们把平均检索长度最短的二叉排序树称作最佳二叉排序,最佳二叉排序树在结构上的特点是C。
供选择的答案:
A:
①比左子树所有结点的关键字大,比右子树所有结点的关键字小
②比左子树所有结点的关键字小,比右子树所有结点的关键字大
③比左右子树的所有结点的关键字都大
④与左子树和右子树各自所有结点的关键字无必然关系
B:
①前序遍历②中序(对称)遍历③后序遍历④层次遍历
C:
①除最下二层可以不满外,其余都是充满的
②除最下一层可以不满外,其余都是充满的
③每个结点的左右子树的高度之差的绝对值不大于1
④最下层的叶子必须在最左边
答案:
A=B=C=
四.简答题(每题7分,共14分)
1、假设以数组seqn[m]存放循环队列的元素,设变量rear和quelen分别指示循环队列中队尾元素的位置和元素的个数。
(1)写出队满的条件表达式;
(2)写出队空的条件表达式;
(3)设m=40,rear=13,quelen=19,求队头元素的位置;
(4)写出一般情况下队头元素位置的表达式。
2、什么叫线索,线索二叉树,线索化?
将二叉树各节点中的空的左孩子指针域改为指向其前驱,空的右孩子指针域改为指向其后继,称这种新的指针为线索,所得到的二叉树称为线索二叉,将二叉树转变成线索二叉树的过程称为线索化。
五.算法题(每题10分,共20分)
1、阅读下面的算法:
LinkListmynote(LinkList*L)
{//L是不带头结点的单链表的头指针
if(L&&L->next)
{
q=L;L=L->next;p=L;
S1:
while(p->next)p=p->next;
S2:
p->next=q;q->next=NULL;
}
return L;
}
请回答下列问题:
(1)说明语句S1的功能;
(2)说明语句组S2的功能;
(3)设链表表示的线性表为(a1,a2,…,an),写出算法执行后的返回值所表示的线性表。
2、利用两个栈sl,s2模拟一个队列时,如何用栈的运算实现队列的插入,删除以及判队空运算。
请简述这些运算的算法思想。
六.应用题(每题6分,共36分)
1、分析下面程序段的时间复杂性:
y=0;while(n>=(y+1)*(y+1)){y++;}。
2、已知二叉树如下图所示:
(1)写出上图二叉树的中序遍历和后序遍历的结果;
(2)画出此二叉树还原成森林的图。
3、试画出对下图执行深度优先遍历产生的生成树(从1开始),并写出遍历序列。
4、假定对有序表:
(3,4,5,7,24,30,42,54,63,72,87,95)进行折半查找,试回答下列问题:
(1)画出描述折半查找过程的判定树;
(2)若查找元素54,需依次与哪些元素比较?
(3)若查找元素90,需依次与哪些元素比较?
(4)假定每个元素的查找概率相等,求查找成功时的平均查找长度。
5、设有一个输入数据的序列是{46,25,78,62,12,37,70,29},试画出从空树起,逐个输入各个数据而生成的二叉排序树。
6、设待排序的排序码序列为{12,2,16,30,28,10,16*,20,6,18},试分别写出使用以下排序方法每趟排序后的结果。
并说明做了多少次排序码比较。
(1)直接插入排序
(2)希尔排序(增量为5,2,1)
(3)冒泡排序
(4)快速排序
参考答案及评分标准
一.判断题(每题1分,共10分)
1、√;2、×;3、√;4、×;5、√;
6、√;7、×;8、√;9、√;10、×;
二.填空题(每题1分,共10分)
1、关系的有限集合;2、head=p->next->next;
3、head==NULL;4、进栈、出栈;
5、双亲表示法,孩子链表表示法,孩子-兄弟表示法;
6、2k-1、2k-1;7、0、(n-1)/2、(n+1)/2、log2n+1;
8、比较、移动;9、8、7;
10、HCQPAMSRDFXY、PACSQHFXRDMY、FHCDPAMQRSYX;
三.选择题(每题1分,共10分)
1、D;2、B;3、C;4、B;5、D;
6、C;7、B;8、B;9、C;10、①、②、②;
四.简答题(每题7分,共14分)
1、
(1)quelen==m;
(2)quelen==0;
(3)34
(4)(rear-quelen+m)%m;
2、将二叉树各节点中的空的左孩子指针域改为指向其前驱,空的右孩子指针域改为指向其后继,称这种新的指针为线索,所得到的二叉树称为线索二叉,将二叉树转变成线索二叉树的过程称为线索化。
五.算法题(每题10分,共20分)
1、
(1)找到next域为NULL的节点,即链表的尾节点;
(2)令尾节点的next域指向原表头,即链表中的第一个节点;再令第一个节点的next域为NULL;从而将原来链表中的第一个节点变为尾节点。
(3)算法执行后的线性表为(a2,…,an,a1)。
2、
(1)用栈s1和s2模拟一个队列的输入:
设s1和s2容量相等。
分以下三种情况讨论:
若s1未满,则元素入s1栈;若s1满,s2空,则将s1全部元素退栈,再压栈入s2,之后元素入s1栈;若s1满,s2不空(已有出队列元素),则不能入队。
(2)用栈s1和s2模拟队列出队(删除):
若栈s2不空,退栈,即是队列的出队;若s2为空且s1不空,则将s1栈中全部元素退栈,并依次压入s2中,s2栈顶元素退栈,这就是相当于队列的出队。
若栈s1为空并且s2也为空,队列空,不能出队。
(3)判队空若栈s1为空并且
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 级数 结构 答案