长沙理工大学 2014-2015学年一学期数据结构期末考试试卷6
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
长沙理工大学计算机与通信工程学院
2014-2015学年一学期数据结构期末考试试卷(B卷)
班级:___________学号:___________姓名:___________得分:___________
题目部分,(卷面共有30题,100分,各大题标有题量和总分)
一、应用题(1小题,共8分)
1.将数列(24,15,38,27,121,76,130)的各元素依次插入一棵初始为空的二叉排序树中,请画出最后的结果并求等概率情况下查找成功的平均查找长度。
二、判断正误(5小题,共10分)
1.顺序存储方式的优点是存储密度大,插入、删除效率高。
2.链表的每个结点都恰好包含一个指针域。
3.线性表的顺序存储结构比链式存储结构更好。()
4.在线索二叉树中,任一结点均有指向其前趋和后继的线索。
5.对连通图进行深度优先遍历可以访问到该图中的所有顶点。()
三、单项选择题(10小题,共20分)
1.使用双链表存储线性表,其优点是可以()。
A 提高查找速度
B 更方便数据的插入和删除
C 节约存储空间
D 很快回收存储空间
2.设某链表中最常用的操作是在链表的尾部插入或删除元素,则选用下列()存储方式最节省运算时间。
A 单向链表
B 单向循环链表
C 双向链表
D 双向循环链表
3.若链表中最常用的操作是在最后一个结点之后插入一个结点和删除最后一个结点,则采用()存储方法最节省运算时间。
A 单链表
B 循环双链表C单循环链表 D 带尾指针的单循环链表
4.对特殊矩阵采用压缩存储的目的主要是为了()
A 表达变得简单
B 对矩阵元素的存取变得简单
C 去掉矩阵中的多余元素
D 减少不必要的存储空间
5.将10*10的对称矩阵压缩存储到一维数组A中,则数组A的长度最少为()。
A 100
B 40
C 55
D 80
6.设散列表中有m个存储单元,散列函数H(key)= key % p,则p最好选择()。
A 小于等于m的最大奇数
B 小于等于m的最大素数
C 小于等于m的最大偶数
D 小于等于m的最大合数
7.设在长度为20的有序表中进行二分查找,则比较一次查找成功的结点数有()个,比较两次查找成功有结点数有()个。
8.在堆排序和快速排序中,如果从平均情况下排序的速度最快的角度来考虑应最好选择()排序,如果从节省存储空间的角度来考虑则最好选择()排序。
9.算法分析的两个主要方面是()。
A. 空间复杂性和时间复杂性
B. 正确性和简明性
C. 可读性和文档性
D. 数据复杂性和程序复杂性
10.链式存储的存储结构所占存储空间()。
A.分两部分,一部分存放结点的值,另一部分存放表示结点间关系的指针
B.只有一部分,存放结点的值
C.只有一部分,存储表示结点间关系的指针
D.分两部分,一部分存放结点的值,另一部分存放结点所占单元素
四、算法设计题(4小题,共32分)
1.设计在单链表中删除值相同的多余结点的算法。
2.已知一个单链表,编写一个函数从单链表中删除自第i个结点起的k个结点。
3.编写算法,要求输出二叉树后序遍历序列的逆序。
4.试在邻接矩阵存储结构上实现图的基本操作:DeleteVex(G,v)和DeleteArc(G,v,w)。
五、填空题(7小题,共15分)
1.双链表中,设p是指向其中待删除的结点,若要删除该结点,则需要执行的操作为:()。 2.对于一个长度为n的单链存储的线性表,在表头插入元素的时间复杂度为_________,在表尾插入元素的时间复杂度为____________。
3.对二维或多维数组,分为按____和______两种不同的存储方式
4.广义表((a), (((b),c)),(d))的表头是(),表尾是()。
5.设二叉树中度数为0的结点数为50,度数为1的结点数为30,则该二叉树中总共有()个结点数。
6.数据结构从逻辑上划分为三种基本类型:()、()和()。
7.数据结构分为逻辑结构与存储结构,线性结构属于(),线性链表属于( )。
六、简答题(3小题,共15分)
1.简述队列和栈这两种数据结构的相同点和不同点。
2.下图所示是一个无向带权图,请按Prim算法从a出发求最小生成树。
3.求下列算法的时间复杂度。
count=0; x=1;
while (x {
x*=2;
count++;
}
return count;
长沙理工大学计算机与通信工程学院
2014-2015学年一学期数据结构期末考试试卷(B卷)答案部分,(卷面共有30题,100.0分,各大题标有题量和总分)
一、应用题(1小题,共8分)
1.【解答】二叉排序树如图所示,其平均查找长度=1+2×2+3×2+4×2=19/7
二、判断正误(5小题,共10分)
1.错
2.错
3.错
4.错
5.对
三、单项选择题(10小题,共20分)
1.B
2. D
3.B
4.D
5.C
6.B
7.1 2
8.快速堆
9.A
10.A
四、算法设计题(4小题,共32分)
1.typedef int datatype;
typedef struct node {datatype data; struct node *next;}lklist;
void delredundant(lklist *&head)
{
lklist *p,*q,*s;
for(p=head;p!=0;p=p->next)
{
for(q=p->next,s=q;q!=0; )
if (q->data==p->data) {s->next=q->next; free(q);q=s->next;}
else {s=q,q=q->next;}
}
}
2.解: