长沙理工大学数据结构期末考试试卷
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A R.lchild=NULL B R.ltag=0 C R.ltag=1 D R.rchild=NULL 4.设二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足 的条件是( )。 A 空或只有一个结点 B 高度等于其结点数 C 任一结点无左孩子 D 任一结点无右孩子 5.在含n个顶点和e条边的无向图的邻接矩阵中,零元素的个数为( ) A.e B.2e C.n2-e D.n2-2e 6.G是一个非连通无向图,共有28条边,则该图至少有( )个顶点。 A6 B7 C8 D9 7.一组记录的关键码为{46, 79, 56, 38, 40, 84},则利用快速排序的方 法,以第一个记录为基准得到的一次划分结果为( )。 A {40, 38, 46, 56, 79, 84} B {40, 38, 46, 79, 56, 84} C {40, 38, 46, 84, 56, 79} D {84, 79, 56, 46, 40, 38} 8.数列(25, 84, 21, 47, 15, 27, 68, 35, 20)进行排序,元素序列的变 化情况如下: ⑴ 25, 84, 21, 47, 15, 27, 68, 35, 20 ⑵ 20, 15, 21, 25, 47, 27, 68, 35, 84 ⑶ 15, 20, 21, 25, 35, 27, 47, 68, 84 ⑷ 15, 20, 21, 25, 27, 35, 47, 68, 84 则采用的排序方法是( )。 A 希尔排序 B 简单选择排序 C 快速排序 D 归并排序 9.以下任何两个结点之间都没有逻辑关系的是( )。 A. 图形结构 B. 线性结构 C. 树形结构 D. 集合 10.数据的基本单位是( )。 A. 数据结构 B. 数据元素 C. 数据项 D. 文件 四、算法设计题(3小题,共24分) 1.试在邻接矩阵存储结构上实现图的基本操作: DeleteVex(G,v)和 DeleteArc(G,v,w)。 2.设计一个算法将无向图的邻接矩阵转为对应邻接表的算法。 3. 已知一个有向图的邻接表,编写算法建立其逆邻接表。 五、填空题(8小题,共16分) 1.假设以 S 和 X 分别表示进栈和出栈操作,则对输入序列 a , b , c , d , e 进行一系列操作 SSXSXSSXXX 之后,得到的输出序列为( )。 2.广义表((a), (((b),c)),(d))的表头是( ),表尾是( )。 3.设哈夫曼树中共有n个结点,则该哈夫曼树中有( )个度数为1的
2.一个线性表为B=(12,23,45,57,20,03,78,31,15,36), 设散列表为HT[0..12],散列函数为H(key)= key % 13并用线性探查法 解决冲突,请画出散列表,并计算等概率情况下查找成功的平均查找长 度。 二、判断正误(7小题,共14分) 1.对链表进行插入和删除操作时不必移动链表中结点。( ) 2.非空的双向循环链表中任何结点的前驱指针均不为空。( ) 3.顺序队和循环队关于队满和队空的判断条件是一样的。 4.稀疏矩阵压缩存储后,必会失去随机存取功能。 5.如果某个有向图的邻接表中第i条单链表为空,则第i个顶点的出度为 零。( ) 6.向二叉排序树中插入一个结点需要比较的次数可能大于该二叉树的 高度。( ) 7.数据的逻辑结构和数据的存储结构是相同的。 三、单项选择题(10小题,共20分) 1.在 C 或 C++ 语言中,一个顺序栈一旦被声明,其占用空间的大小 ( )。 A .已固定 B .不固定 C .可以改变 D .动态变化 2.设用链表作为栈的存储结构则出栈操作( )。 A 必须判别栈是否为满 B 必须判别栈是否为空 C 判别栈元素的类型 D 对栈不作任何判别 3.线索二叉树中某结点R没有左孩子的充要条件是( )。
2.下图所示是一个无向带权图,请按Kruskal算法从a出发求最小生成 树。
长沙理工大学计算机与通信工程学院
2013-2014学年二学期数据结构期末考试试卷(B卷) 答案部分,(卷面共有32题,100.0分,各大题标有题量和总分) 一、应用题(2小题,共10分) 1.【解答】拓扑序列为:v0 v1 v5 v2 v3 v6 v4、 v0 v1 v5 v2 v6 v3 v4、 v0 v1 v5 v6 v2 v3
3.【解答】在有向图中,若邻接来自百度文库中顶点vi有邻接点vj,在逆邻接表中vj
一定有邻接点vi,由此得到本题算法思路:首先将逆邻接表的表头结点 firstedge域置空,然后逐行将表头结点的邻接点进行转化。
五、填空题(8小题,共16分) 1.b , c , e d , a 2.(a),((((b),c)),(d)) 3.0 4.零 最大值 5.顺序存储,按关键码有序 6. 正序,n-1 7.冒泡排序 8.关键码的比较次数,记录的移动次数 六、简答题(2小题,共10分)
长沙理工大学计算机与通信工程学院
2013-2014学年二学期数据结构期末考试试卷(B卷) 班级:___________学号:___________姓名:___________得分:___________ 题号 一 二 三 四 五 六 七 八 九 十 成绩 复核 得分 阅卷 题目部分,(卷面共有32题,100分,各大题标有题量和总分) 一、应用题(2小题,共16分) 1.已知一个AOV网如图所示,写出所有拓扑序列。
{ n=G.vexnum; if((m=LocateVex(G,v))<0) return ERROR; G.vexs[m]<->G.vexs[n]; //将待删除顶点交换到最后一个顶点 For(i=0;i<n;i++) { G.arcs[i][m]=G.arcs[i][n]; G.arcs[m][i]=G.arcs[n][i]; //将边的关系随之交换 } G.arcs[m][m].adj=0; G.vexnum--; return OK; }//DeleteVex Status DeleteArc(MGraph &G,char v,char w)//在邻接矩阵表示的图G上删 除边(v,w) { if((i=LocateVex(G,v))<0) return ERROR; if((j=LocateVex(G,w))<0) return ERROR; if(G.arcs[i][j].adj) { G.arcs[i][j].adj=0; G.arcnum--; } return OK; }//DeleteArc 2.typedef struct {int vertex[m]; int edge[m][m];}gadjmatrix; typedef struct node1{int info;int adjvertex; struct node1 *nextarc;}glinklistnode; typedef struct node2{int vertexinfo;glinklistnode *firstarc;}glinkheadnode; void adjmatrixtoadjlist(gadjmatrix g1[ ],glinkheadnode g2[ ]) { int i,j; glinklistnode *p; For(i=0;i<=n-1;i++) g2[i].firstarc=0; For(i=0;i<=n-1;i++) for(j=0;j<=n-1;j++) if (g1.edge[i][j]==1) { p=(glinklistnode *)malloc(sizeof(glinklistnode));p->adjvertex=j;
p->nextarc=g[i].firstarc; g[i].firstarc=p; p=(glinklistnode *)malloc(sizeof(glinklistnode));p->adjvertex=i; p->nextarc=g[j].firstarc; g[j].firstarc=p; } }
v4。
2. 0 1 2 3 4 5 6 7 8 9 10 11 12
78
15
03
57
45
20
31
23
36
12
查找成功的平均查找长度:ASL SUCC=14/10= 1.4 二、判断正误(7小题,共14分) 1.对 2.对 3.错 4.对 5.对 6.错 7.错 三、单项选择题(10小题,共20分) 1.A 2.B 3.C 4.D 5.D 6.D 7.A 8.C 9.D 10.B 四、算法设计题(3小题,共24分) 1.Status DeleteVex(MGraph &G,char v)//在邻接矩阵表示的图G上删除 顶点v
结点。 4.度不为 的结点称为分支结点或非终端结点。树中各结点度的 称为树的度。 5.折半查找技术适用于存储结构为( )的线性表,并且表中的元素必 须是( )。 6.对n个元素进行起泡排序,在( )情况下比较的次数最少,其比 较次数为( )。 7.最简单的交换排序方法是( ) 8.评价基于比较的排序算法的时间性能,主要标准是( )和( )。 六、简答题(2小题,共10分) 1.设有无向图G(如下图所示),要求给出用普里姆算法构造最小生 成树所走过的边的集合。
1.E={(1,3),(1,2),(3,5),(5,6),(6,4)} 2.按Kruskal算法求最小生成树的过程如下: