长沙理工大学数据结构期末考试试卷
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
长沙理工大学计算机与通信工程学院
2013-2014学年二学期数据结构期末考试试卷(B卷)
班级:___________学号:___________姓名:___________得分:___________
题号一二三四五六七八九十成绩复核
得分
阅卷
题目部分,(卷面共有31题,100分,各大题标有题量和总分)
一、应用题(1小题,共8分)
1.已知无向图G的邻接表如图所示,分别写出从顶点1出发的深度遍历和广度遍历序列。
二、判断正误(7小题,共14分)
1.串中任意个字符组成的子序列称为该串的子串。
2.带权无向图的最小生成树是唯一的。()
3.如果某个有向图的邻接表中第i条单链表为空,则第i个顶点的出度为零。()4.无向图的邻接矩阵一定是对称的,有向图的邻接矩阵一定是不对称的。()
5.向二叉排序树中插入一个结点需要比较的次数可能大于该二叉树的高度。()
6.堆是完全二叉树,完全二叉树不一定是堆。()
7.数据的逻辑结构和数据的存储结构是相同的。()
三、单项选择题(10小题,共20分)
1.在顺序表中,只要知道(),就可以求出任一结点的存储地址。
A.基地址B.结点大小C.向量大小D.基地址和结点大小
2.设指针变量p指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作序列为()。
A q=p->next;p->data=q->data;p->next=q->next;free(q);
B q=p->next;q->data=p->data;p->next=q->next;free(q);
C q=p->next;p->next=q->next;free(q);
D q=p->next;p->data=q->data;free(q);
3.循环队列占用的空间( )。
A.必须连续 B.不必连续C.不能连续D.可以不连续
4.若用一个大小为6的数组来实现循环队列,且当前front和rear的值分别为3和0,当从队列中删除一个元素,再加入两个元素后,front和rear的值分别为( )。
A.5和1 B.4和2 C.2和4 D.1和5
5.设某棵二叉树的高度为10,则该二叉树上叶子结点最多有()。
A 20
B 256
C 512
D 1024
6.设有一组初始记录关键字序列为(34,76,45,18,26,54,92),则由这组记录关键字生成的二叉排序树的深度为()。
A 4
B 5
C 6
D 7
7.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )
A. 1,2,3
B. 9,5,2,3
C. 9,5,3
D. 9,4,2,3
8.在堆排序和快速排序中,如果从平均情况下排序的速度最快的角度来考虑应最好选择()排序,如果从节省存储空间的角度来考虑则最好选择()排序。
9.设一组初始记录关键字序列为(45,80,55,40,42,85),则以第一个记录关键字45为基准而得到一趟快速排序的结果是()。
A 40,42,45,55,80,83
B 42,40,45,80,85,88
C 42,40,45,55,80,85
D 42,40,45,85,55,80
10.下列叙述正确的是()
A.算法的执行效率与数据的存储结构无关B.算法的空间复杂度是指算法程序中指令(或语句)的条数C.算法的有穷性是指算法必须能在执行有限个步骤之后终止D.算法的时间复杂度是指执行算法程序所需要的时间
四、算法设计题(4小题,共32分)
1.设计判断单链表中元素是否是递增的算法。
2.一个循环队列Queue,只有头指针front,不设尾指针,另设一个含有元素个数的记数器cont,试写出相应的入队算法和出队算法。
3.设计一个在链式存储结构上统计二叉树中结点个数的算法。
4.设计算法,计算图中出度为零的顶点个数。
五、填空题(6小题,共12分)
1.当循环队列为空时,不能进行出队运算,这种情况称为()。
2.已知顺序栈S,在对S进行进栈操作之前首先要判断(),在对S进行出栈操作之前首先要判断()。
3.设长度为n的链队列用单循环链表表示,若只设尾指针,则出队操作的时间复杂度为( )。
4.完全二叉树中第5层上最少有()个结点,最多有()个结点。
5.表示一个有100个顶点,1000条边的有向图的邻接矩阵有()个非零矩阵元素。6.若一个算法中的语句频度之和为T(n)=3n+nlog2n+n2,则算法的时间复杂度为()
六、简答题(2小题,共10分)
1.设一数列的输入顺序为123456,若采用堆栈结构,并以A和D分别表示入栈和出栈操作,试问通过入出栈操作的合法序列,能否得到输出顺序为154623的序列。
2.设有无向图G(如下图所示),要求给出用普里姆算法构造最小生成树所走过的边的集合。
七、名词解释(1小题,共4分)
1.什么是AOE网?
长沙理工大学计算机与通信工程学院
2013-2014学年二学期数据结构期末考试试卷(B卷)
答案部分,(卷面共有31题,100.0分,各大题标有题量和总分)
一、应用题(1小题,共8分)
1.【解答】深度优先遍历序列为:1,2,3,4,5,6 广度优先遍历序列为:1,2,4,3,5,6
二、判断正误(7小题,共14分)
1.错
2.错
3.对
4.错
5.错
6.对
7.错
三、单项选择题(10小题,共20分)
1.D
2.A
3.A
4.B
5.C
6.A
7.D
8.快速堆
9.C
10.C
四、算法设计题(4小题,共32分)
1.int isriselk(lklist *head)
{
if(head==0||head->next==0) return(1);else For(q=head,p=head->next; p!=0; q=p,p=p->next)if(q->data>p->data) return(0);
return(1);
}
2.解:用一个循环数组Queue[0,n-1]表示该循环队列,头指针为front,计数器count用来记录队列中结点的个数。
(1)入队算法:
void inqueqe(int x)
{ int temp;
if (count==n)
printf(" 队列上溢出\n"); Else
{ count++
temp=(front+count)%n;
Queue[temp]=x