数据结构超全习题到.docx
- 文档编号:6948870
- 上传时间:2023-01-13
- 格式:DOCX
- 页数:26
- 大小:193.47KB
数据结构超全习题到.docx
《数据结构超全习题到.docx》由会员分享,可在线阅读,更多相关《数据结构超全习题到.docx(26页珍藏版)》请在冰豆网上搜索。
数据结构超全习题到
20~20学年第学期数据结构课程试卷
标准答案及评分标准A()/B()卷
专业班级
注意:
标题请用宋体4号,内容请用宋体5号。
一、选择题(1*25=25分)
1~5BCABB6~10BBCCB11~15BBCAB16~20AABCD21~25ADBDC
二、填空题(2*10=20分)
1.n-i+12.3123.34.’xyxyxywwy’5.2326.69
7.HIDJKEBLFGCA8.第k列非零元素个数9.910.散列(hash)查找
三、简答题(7+8+10+10=35分)
1.(行、列、元素个数及每行各1分)
4
4
4
1
0
2
2
2
1
0
3
3
2
2
-1
4
2
3
5
2.
树和二叉树的区别有三:
一是二叉树的度至多为2,树无此限制;(2分)二是二叉树有左右子树之分,即使在只有一个分枝的情况下,也必须指出是左子树还是右子树,树无此限制;(2分)三是二叉树允许为空,树一般不允许为空(个别书上允许为空)。
(2分)
树和二叉树逻辑上都是树形结构,二叉树不是树的特例。
(2分)
3.
设该图用邻接表存储结构存储,顶点的邻接点按顶点编号升序排列
(1)ABGFDEC
(2)EACFBDG
(3)
4.
顶点
α
A
B
C
D
E
F
G
H
W
Ve(i)
0
1
6
3
4
24
13
39
22
52
Vl(i)
0
29
24
3
7
31
13
39
22
52
(4分)
活动
a1
a2
a3
a4
a5
a6
a7
a8
a9
a10
a11
a12
a13
a14
a15
a16
a17
e(i)
0
0
0
0
1
6
6
3
3
4
24
13
13
13
39
22
22
l(i)
28
18
0
3
29
24
31
34
3
7
31
20
36
13
39
22
40
(4分)
关键路径是:
活动与顶点的对照表:
a1<α,A>a2<α,B>a3<α,C>a4<α,D>a5a6a7a8
a9
四、算法实现题(2*10=20分)
1.
//La和Lb均不空
GetElem(La,i,ai);
GetElem(Lb,j,bj);
if(ai<=bj){(2分)
ListInsert(Lc,++k,ai);++i;(2分)
}else{
ListInsert(Lc,++k,bj);++j;(2分)
}
//当La不空时
GetElem(La,i++,ai);
ListInsert(Lc,++k,ai);(2分)
//当Lb不空时
GetElem(Lb,j++,bj);
ListInsert(Lc,++k,bj);(2分)
2.
/*直接插入排序算法*/
voidStrInsSort1(RecTypeR[],intn){
∥本算法是利用监视哨对R[1..n]进行直接插入排序
for(i=2;i<=n;i++){∥假定第一个记录有序(2分)
R[0]=R[i];j=i-1;∥将待排序记录放进监视哨(2分)
∥从后向前查找插入位置,将大于待排序记录向后移动
while(R[0].key R[j+1]=R[j];(1分) j--;∥记录后移(1分) }∥while R[j+1]=R[0];∥将待排序记录放到合适位置(2分) }∥for } 一、单项选择题(1*30=30分) 1.数据结构在计算机内存中的表示是指()。 A.数据的存储结构B.数据结构C.数据的逻辑结构D.数据元素之间的关系 2.()是相互之间存在一种或多种特定关系的数据元素的集合。 A.数据B.数据元素C.数据对象D.数据结构 3.多叉路口交通灯的管理问题,采用()关系的数据结构 A.集合B.线性C.树形D.图形 4.若线性表最常用的运算是存取第i个元素及其前驱的值,则采用()存储方式节省时间。 A.单链表B.双链表C.单循环链表D.顺序表 5.下列算法的执行频度为().A.0(n)B.O(n3)C.O(n2)D.O(nlogn) for(i=1;i<=n;i++) for(j=1;j<=n;j++) {c[i][j]=0; for(k=1;k<=n;k++) c[i][j]=c[i][j]+a[i][k]*b[k][j]; } 6.操作系统中的作业调度采用()结构 A.顺序表B.栈C.队列D.图 7.一个栈的的进栈序列是a,b,c,d,e,则栈的输出序列不可能是()。 A.edcbaB.decbaC.dceabD.abcde 8.设循环队列中数组的下标范围是0~m-1,其中头尾指针分别是front和rear,则其元素个数是()。 A.rear-frontB.rear-front+1 C.(rear-front)MODm+1D.(rear-front+m)MODm 9.已知一棵完全二叉树共有892个结点,最后一个非终端结点的序号是()。 A.446B.445C.444D.448 10.已知二维数组A中,每个元素A[i][j]在存储时要占3个字节,设i从1变化到8,j从1变化到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为 A.BA+141B.BA+180C.BA+222D.BA+225 11.下面关于串的的叙述中,哪一个是不正确的? () A.串是字符的有限序列B.空串是由空格构成的串 C.模式匹配是串的一种重要运算D.串既可以采用顺序存储,也可以采用链式存储 12.广义表GetHead[GetTail[GetHead[((a,b),(c,d))]]]操作的结果为() A.bB.(b)C.dD.(d) 13.在n个结点的线索二叉树中,线索的数目为()。 A.n-1B.nC.n+1D.2n 14.下面哪一方法可以判断出一个有向图是否有环(回路)()。 A.深度优先遍历B.拓扑排序C.求最短路径D.求关键路径 15.深度为k的二叉树至多有()结点。 A.2k-1B.2k-1C.2kD.2k-2 16.用邻接表存储的图进行广度优先遍历时,通常是采用()结构来实现算法的。 A.栈B.队列C.树D.图 17.如果一颗哈夫曼树T有n0个叶子结点,那么树T共有()个结点。 A.2n0-1B.2n0+1C.3n0-1D.3n0+1 18.已知一棵树边的集合为{,, A.AB.CC.ID.B 19.设有1000个无序的元素,希望用最快的速度挑选出其中前10个最小的元素,最好选用()排序法。 A.冒泡排序B.快速排序C.堆排序D.基数排序 20.散列法存储的基本思想是根据关键码值来决定存储地址,碰撞(冲突)指的是()。 A.两个元素具有相同序号B.两个元素的关键码值不同,而非码属性相同 C.不同关键码值对应到相同的存储地址D.负载因子过大 21.由两个栈共享一个向量空间的好处是: (). A.减少存取时间,降低下溢发生的机率B.节省存储空间,降低上溢发生的机率 C.减少存取时间,降低上溢发生的机率D.节省存储空间,降低下溢发生的机率 22.在一个链队列中,假定front和rear分别为队首和队尾指针,则指针s所指的结点入队的操作为(). A.front->next=s;B.s->next=rear;rear=s; C.rear->next=s;rear=s;D.s->next=front;front=s; 23.某二叉树的先序序列和后序序列正好相反,则该二叉树一定是()的二叉树。 A.空或只有一个结点B.高度等于其结点数C.任意结点无左孩子D.任意结点无右孩子 24.用某种排序方法对关键字序列(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.快速排序 25.设有序表中有1000个元素,则用二分查找查找元素X最多需要比较()次。 A.25B.10C.7D.1 26.下列哪一个关键字序列不符合堆的定义? ( ) A.A、C、D、G、H、M、P、Q、R、X B.A、C、M、D、H、P、X、G、Q、R C.A、D、P、R、C、Q、X、M、H、G D.A、D、C、M、P、G、H、X、R、Q 27.图的深度优先遍历类似于二叉树的()。 A.先序遍历B.中序遍历C.后序遍历D.层次遍历 28.下列二叉排序树中,满足平衡二叉树定义的是()。 29.若要设计一个判别表达式中左、右括号是否配对的算法,采用()数据结构最佳。 A.顺序表B.栈C.队列D.单链表 30.对基本有序的n个记录的表作快速排序算法的时间复杂度是()。 A.O(n)B.O(n2)C.O(nlogn)D.O(n3) 二、判断题(1*10=10分) 1.算法的时间复杂度是问题规模的函数,与输入的初始状态无关。 () 2.链表是采用链式存储结构的线性表,进行插入、删除操作时,在链表中比在顺序存储结构中效率高。 () 3.折半查找只适合用于有序表,包括有序的顺序表和有序的链表。 ( ) 4.栈和队列的存储方式,既可以是顺序方式,又可以是链式方式。 () 5.在有n个顶点的有向图中,若要使任意两点间可以互相到达,则至少需要n-1条弧。 () 6.在索引顺序表中,实现分块查找,在等概率查找情况下,其平均查找长度不仅与表中元素个数有关,而且与每块中元素个数有关。 () 7.对一棵二叉排序树按先序方法遍历得出的结点序列是从小到大的序列。 () 8.在n个结点的无向图中,若边数大于n-1,则该图必是连通图。 () 9.在AOE图中,关键路径上某个活动的时间缩短,整个工程的时间也就必定缩短。 () 10.一棵有n个结点的二叉树,从上到下,从左到右用自然数依次给予编号,则编号为i的结点的左儿子的编号为2i(2i () 三、综合题(45分) 1.从空树开始,按下列插入顺序: DEC、FEB、NOV、OCT、JUL、SEP、AUG、APR、MAR、MAY、JUN、JAN,试构造二叉排序树,并求其查找 成功情况下的平均查找长度。 (8分) 2.已知一棵二叉树的先序和中序遍历次序如下: EBADCFHGIKJ ABCDEFGHIJK 试画出此二叉树,以及此二叉树的中序线索化的逻辑图。 (10分) 3.以数据集{8,6,23,15,4,20,35,10}为结点权值构造哈夫曼树,并求其带权路径长度。 (7分) 4.设散列表的长度为13,散列函数H(k)=kmod13,初始记录关键字序列为(87,25,310,08,27,132,68,95,187,123,70,63, 47),要求用线性探测再散列作为解决冲突的方法。 设计出这种散列表并求其查找成功情况下的平均查找长度。 (10分) 5.设无向图G(如下图所示), (1)画出G的邻接表存储表示;(2分) (2)根据你画出的邻接表,以初始点为顶点1,给出对该图进行深度优先和广度优先遍历的顶点序列;(4分) (3)给出该图的最小生成树并计算最小生成树各边上的权值之和。 (4分) 五、算法设计题(7+8=15分) 1.已知两个整数集合A和B,它们的元素分别依元素值递增有序存放在两个单链表HA和HB中,编写一个函数求出这两个集合的并集C,并要求表示集合C的链表的结点仍按照元素值递增有序存放且使用原空间。 2.试用队列结构实现二叉链表存储的二叉树的层次遍历的算法。 2010~_2011_学年第2学期数据结构课程试卷 标准答案及评分标准A(√)/B()卷 专业计算机科学与技术、软件、网络班级计算091-3、网络091-2、软件091-2 单项选择题(1*30=30分) 1A2D3D4B5B6C7C8D9A10B11B12A13C14B15B16B17A 18B19C20C21B22C23B24D25B26C27A28B29B30B 二、判断题(1*10=10分) 1×2√3×4√5×6√7×8×9×10× 三、综合题(45分) 1.二叉排序树如下所示: (8分) 查找成功情况下的平均查找长度为: (1+2*2+3*2+4*2+5*3+6*2)/12=23/6 2.二叉树为: (5分)线索二叉树(5分)红色带箭头的为线索 3.哈夫曼树如下(5分) 带权路径长度为: WPL=(4+6+8+10)*4+(15+20)*3+(23+35)*2=333(2分) 4.散列表如下: 序号 0 1 2 3 4 5 6 7 8 9 10 11 12 值 63 27 132 68 95 187 123 70 08 87 47 310 25 次数 3 1 1 1 1 1 1 3 1 1 3 1 1 成功查找情况下的平均查找长度为: ASL=(10*1+3*3)/13=19/13 5. (1)邻接表如下(2分) (2)深度优先遍历序列: 1,2,3,4,5(2分) 广度优先遍历序列: 1,2,4,5,3(2分) (3)最小生成树: (2分) 最小生成树各边上的权值之和为: 10 五、算法设计题(7+8=15分) 1.(共7分) voidMergeList_L(LinkList&HA,LinkList&HB,LinkList&HC) {//按值递增排序的单链表LA,LB,归并为LC后也按值递增排序 pa=HA-->next;pb=HB-->next;Lc=pc=HA;//初始化(1分) while(pa&&pb)//将pa、pb结点按大小依次插入C中 {if(pa->data<=pb->data)(1分) {pc->next=pa;pc=pa;pa=pa->next;}(2分) else{pc->next=pb;pc=pb;pb=pb->next}(2分) } pc->next=pa? pa: pb;//插入剩余段(1分) free(HB);//释放Lb的头结点 }//MergeList_L 2.二叉链表存储的二叉树的层次遍历的算法: (共8分) voidBFSTraverse(BiTreeT){ InitQueue(Q);//置空的辅助队列Q if(T)EnQueue(Q,T);//根结点入队列(1分) while(! QueueEmpty(Q)){(1分) DeQueue(Q,p);//队头元素出队并置为p(1分) Visit(p);(1分) if(p->Lchild) EnQueue(Q,p->Lchild);//左子树根入队列(2分) if(p->Rchild) EnQueue(Q,p->Rchild);//右子树根入队列(2分) }//while } 单项选择题(1*30=30分) 1.数据结构在计算机内存中的表示是指()。 A.数据的存储结构B.数据结构C.数据的逻辑结构D.数据元素之间的关系 2.算法是指对特定问题求解步骤的一种描述,它是指令的有限序列。 它必须具备()和输入、输出等五个特性。 A.确定性、有穷性、稳定性B.可执行性、正确性、安全性 C.可行性、确定性、有穷性D.易读性、易改性、正确性 3.以下与数据的存储结构无关的术语是()。 A.循环队列B.链表C.哈希表D.栈 4.若线性表最常用的运算是存取第i个元素及其前驱的值,则采用()存储方式节省时间。 A.单链表B.双链表C.单循环链表D.顺序表 5.在单链表中,在p所指结点之后插入s所指结点的操作是()。 A.s->next=p->next;p->next=s; B.s->next=p;p->next=s; C.p->next=s;s->next=p; D.p->next=s->next;s->next=p; 6.若频繁地对线性表进行插入和删除操作,该线性表应该采用()存储结构。 A.散列B.顺序C.链式D.索引 7.一个栈的的进栈序列是a,b,c,d,e,则栈的输出序列不可能是()。 A.edcbaB.decbaC.dceabD.abcde 8.判定一个循环队列QU(最多元素个数为m0)为满的条件是()。 A.QU.front==(QU.rear+1)%m0 B.QU.front! =(QU.rear+1)%m0 C.QU.front==QU.rear D.QU.front! =QU.rear 9.线性表的顺序存储结构是一种()的存储结构。 A.随机存取B.顺序存取C.索引存取D.散列存取10.一个向量第一个元素的存储地址是100,每个元素占2个存储空间,则第五个元素的地址是()。 A.110B.108C.100D.120 11.下面关于串的的叙述中,哪一个是不正确的? () A.串是字符的有限序列B.空串是由空格构成的串 C.模式匹配是串的一种重要运算D.串既可以采用顺序存储,也可以采用链式存储 12.广义表GetHead[GetTail[GetHead[((a,b),(c,d))]]]操作的结果为() A.bB.(b)C.dD.(d) 13.已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是()。 AacbedBdecabCdeabcDcedba 14.下面哪一方法可以判断出一个有向图是否有环(回路)()。 A.深度优先遍历B.拓扑排序C.求最短路径D.求关键路径 15.深度为5的二叉树至多有_个结点 A16B32C31D10 16.栈和队列的相同之处是()。 A.元素的进出满足先进后出B.元素的进出满足后进先出 C.只允许在端点进行插入和删除操作D.无共同点 17.如果一颗哈夫曼树T有n0个叶子结点,那么树T共有()个结点。 A.2n0-1B.2n0+1C.3n0-1D.3n0+1 18.已知一棵树边的集合为{,, A.AB.CC.ID.B 19.在一个具有n个顶点的无向图中,要连通全部顶点至少需要()条边。 A.nB.n+1C.n-1D.n+边数 20.散列法存储的基本思想是根据关键码值来决定存储地址,碰撞(冲突)指的是()。 20.散列法存储的基本思想是根据关键码值来决定存储地址,碰撞(冲突)指的是()。 A.两个元素具有相同序号B.两个元素的关键码值不同,而非码属性相同 C.不同关键码值对应到相同的存储地址D.负载因子过大 21.在下列排序算法中,在待排序的数据表已经为有序时,花费时间反而多的是()。 A.快速排序B.希尔排序C.冒泡排序D.堆排序 22.在一个链队列中,假定front和rear分别为队首和队尾指针,则插入指针s所指的结点的操作为()。 A.front->next=s;B.s->next=rear;rear=s; C.rear->next=s;rear=s;D.s->next=front;front=s; 23.某二叉树的前序序列和后序序列正好相反,则该二叉树一定是()的二叉树。 A.空或只有一个结点。 B.高度等于其结点数。 C.任一结点无左孩子。 D.任一结点无右孩子。 24.对n个结点的线性表进行排序,平均情况下归并排序的时间复杂性为()。 A.O(n*n)B.O(nlog2n)C.O(n)D.O(log2n) 25.设有序表中有1000个元素,则用二分查找查找元素X最多需要比较()次。 A.25B.10C.7D.1 26.一组记录的输入顺序为(46,79,56,38,40,84),则利用堆排序方法建立的初始堆为()。 A.79,46,56,38,40,80B.38,40,56,79,46,84 C.84,79,56,38,40,46D.84,56,79,40,46,38 27.图的深度优先遍历类似于二叉树的()。 A.先序遍历B.中序遍历C.后序遍历D.层次遍历 28.下列二叉排序树中,满足平衡二叉树定义的是()。 29.以下哪一个不是栈的基本运算? () A.从栈顶插入一个新元素B.从栈底删除一个元素 C.判断一个栈是否为空D.读取栈顶元素的值 30.若a=1,b=2,c=3,d=4,则后缀式db/cc*a-b*+的运算结果为( )。 A.18B.16C.15D.17 二、判断题(1*10=10分) 1.算法的时间复杂度是问题规模的函数,与输入的初始状态无关。 () 2.两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 习题
![提示](https://static.bdocx.com/images/bang_tan.gif)