数据结构试卷03答案
数据结构期末试卷及答案3

数据结构期末试卷及答案3⼀、单项选择题(本⼤题共15⼩题,第⼩题2分,共30分)在每⼩题列出的四个选项中只有⼀个符合题⽬要求,请将其代码填在题后的括号内。
错选或未选均⽆分。
1. 算法必须具备输⼊、输出和[ C ]A. 计算⽅法B. 排序⽅法C.解决问题的有限运算步骤 D. 程序设计⽅法2. 有n个节点的顺序表中,算法的时间复杂度是O(1)的操作是[ A ]A.访问第i个节点(1≤i≤n)B.在第i个节点后插⼊⼀个新节点(1≤i≤n)C.删除第i个节点(1≤i≤n)D.将n个节点从⼩到⼤排序3.单链表的存储密度[ C] A.⼤于1 B. 等于1C.⼩于1 D. 不能确定4.设将整数1,2,3,4,5依次进栈,最后都出栈,出栈可以在任何时刻(只要栈不空)进⾏,则出栈序列不可能是[ B] A.23415 B. 54132C.23145 D. 154325. 循环队列SQ的存储空间是数组d[m],队头、队尾指针分别是front和rear,则执⾏出队后其头指针front值是[ D ]A.front=front+1 B. front=(front+1)%(m-1)C. front=(front-1)%mD. front=(front+1)%m6. 在⼀个具有n个结点的有序单链表中插⼊⼀个新结点并仍然保持有序的时间复杂度是[ B ]A. O(1)B. O(n)C. O(n2)D. O(nlogn)7. 设⼆维数组A[0..m-1][0..n-1]按⾏优先顺序存储,则元素A[i][j]的地址为[ B ] A.LOC(A[0][0])+(i*m+j) B.LOC(A[0][0])+(i*n+j)C.LOC(A[0][0])+[(i-1)*n+j-1]D. LOC(A[0][0])+[(i-1)*m+j-1]8. ⼀个⾮空⼴义表的表头[ D ]A.⼀定是⼦表 B. ⼀定是原⼦C.不能是⼦表 D. 可以是原⼦,也可以是⼦表9.具有n个节点的完全⼆叉树的深度为[ A ] A.?log2(n+1)? -1 B. log2n+1C. log2nD. ?log2n?10. 若要惟⼀地确定⼀棵⼆叉树,只需知道该⼆叉树的[ D ]A.前序序列 B. 中序序列C.前序和后序序列 D. 中序和后序序列11.在⼀个⽆向图中,所有顶点的度数之和等于图的边数的倍[ C ] A.1/2 B. 1C. 2D. 412. 拓扑排序运算只能⽤于[ C ]A.带权有向图 B. 连通⽆向图C.有向⽆环图 D. ⽆向图13.在所有排序⽅法中,关键字⽐较的次数与记录的初始排列次序⽆关的是[ D ] A.希尔排序 B. 冒泡排序C.插⼊排序 D. 选择排序14.下列排序算法中时间复杂度不受数据初始状态影响,恒为O(n2)的是[ C ] A.堆排序 B. 冒泡排序C.直接选择排序 D. 快速排序15.⼆分查找要求节点[ A ] A.有序、顺序存储 B. 有序、链接存储C.⽆序、顺序存储 D. ⽆序、链接存储⼆、填空题(本⼤题共10⼩题,每⼩题2分,共20分)不写解答过程,将正确的答案写在每⼩题的空格内。
数据结构试卷带答案

数据结构试卷(一)一、选择题(20分)1.组成数据的基本单位是( 1。
C )。
(A) 数据项(B) 数据类型(C) 数据元素(D)数据变量2.设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={〈1,2>,<2,3>,〈3,4>,〈4,1〉},则数据结构A是( C )。
(A)线性结构(B)树型结构(C)图型结构(D) 集合3.数组的逻辑结构不同于下列(D)的逻辑结构.(A)线性表(B)栈(C) 队列(D) 树4.二叉树中第i(i≥1)层上的结点数最多有(C)个。
(A) 2i (B) 2i(C) 2i—1(D) 2i-15.设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为(。
A ).(A)p-〉next=p-〉next->next (B) p=p—〉next(C) p=p->next—>next (D)p->next=p6.设栈S和队列Q的初始状态为空,元素E1、E2、E3、E4、E5和E6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量至少应该是(.C )。
(A) 6 (B) 4 (C) 3 (D) 27.将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为(C ).(A) 100 (B) 40 (C) 55 (D) 808.设结点A有3个兄弟结点且结点B为结点A的双亲结点,则结点B的度数数为(8。
B(A) 3 (B) 4 (C) 5 (D) 19.根据二叉树的定义可知二叉树共有( B)种不同的形态.(A) 4 (B) 5 (C) 6 (D) 710.设有以下四种排序方法,则( B )的空间复杂度最大。
(A)冒泡排序(B)快速排序(C) 堆排序(D) 希尔排序二、填空题(30分)1.设顺序循环队列Q[0:m—1]的队头指针和队尾指针分别为F和R,其中队头指针F指向当前队头元素的前一个位置,队尾指针R指向当前队尾元素所在的位置,则出队列的语句为 F =____________;。
《数据结构》期末考试试卷试题及答案

《数据结构》期末考试试卷试题及答案第一部分:选择题(每题2分,共20分)1. 下面哪个数据结构是线性结构?A. 树B. 图C. 队列D. 网络流2. 下面哪个数据结构用于实现广度优先搜索算法?A. 栈B. 队列C. 散列表D. 堆3. 下面哪个数据结构用于实现深度优先搜索算法?A. 栈B. 队列C. 散列表D. 堆4. 下面哪个数据结构用于实现快速排序算法?A. 栈B. 队列C. 散列表D. 堆5. 下面哪个数据结构用于实现优先队列?A. 栈B. 队列C. 散列表D. 堆6. 下面哪个数据结构用于实现哈希表?A. 栈B. 队列C. 散列表D. 堆7. 下面哪个数据结构用于实现最小树算法?A. 栈B. 队列C. 散列表D. 堆8. 下面哪个数据结构用于实现拓扑排序算法?A. 栈B. 队列C. 散列表D. 堆9. 下面哪个数据结构用于实现最短路径算法?A. 栈B. 队列C. 散列表D. 堆10. 下面哪个数据结构用于实现并查集算法?A. 栈B. 队列C. 散列表D. 堆第二部分:填空题(每题2分,共20分)1. 链表是一种______数据结构。
2. 二叉树的节点最多有______个子节点。
3. 堆是一种特殊的______。
4. 散列表的查找效率取决于______。
5. 图的遍历算法包括______和______。
6. 快速排序算法的平均时间复杂度为______。
7. 哈希表中的冲突解决方法有______和______。
8. 最小树算法包括______和______。
9. 最短路径算法包括______和______。
10. 并查集算法用于解决______问题。
第三部分:简答题(每题10分,共50分)1. 请简述栈和队列的区别。
2. 请简述二叉搜索树的特点。
3. 请简述哈希表的原理。
4. 请简述图的深度优先搜索算法。
5. 请简述最小树算法的原理。
第四部分:编程题(每题20分,共50分)1. 编写一个函数,实现链表的插入操作。
数据结构第三单元测验答案

数据结构第三单元测验答案数据结构第三次单元测验答案⼀、选择题1.对N个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为( ) A.(N+1)/2 B. N/2 C. N D.[(1+N)*N ]/22.适⽤于折半查找的表的存储⽅式及元素排列要求为( )A.链接⽅式存储,元素⽆序 B.链接⽅式存储,元素有序C.顺序⽅式存储,元素⽆序D.顺序⽅式存储,元素有序3.当在⼀个有序的顺序存储表上查找⼀个数据时,即可⽤折半查找,也可⽤顺序查找,但前者⽐后者的查找速度( )A.必定快 B.不⼀定 C. 在⼤部分情况下要快 D. 取决于表递增还是递减4.有⼀个长度为12的有序表,按⼆分查找法对该表进⾏查找,在表内各元素等概率情况下查找成功所需的平均⽐较次数为()。
A.35/12 B.37/12 C.39/12 D.43/125.折半查找的时间复杂性为()A. O(n2)B. O(n)C. O(nlogn)D. O(logn)6.对有18个元素的有序表作折半查找,则查找A[3]的⽐较序列的下标为()A.1,2,3B.9,5,2,3C.9,5,3D.9,4,2,37.设有序表的关键字序列为{1,4,6,10,18,35,42,53,67,71,78,84,92,99},当⽤⼆分查找法查找健值为84的结点时,经()次⽐较后查找成功。
A.2B. 3C. 4D.128.⽤n个键值构造⼀棵⼆叉排序树,最低⾼度为()A.n/2B.、nC.lognD.logn+19.分别以下列序列构造⼆叉排序树,与⽤其它三个序列所构造的结果不同的是( ) A.(100,80, 90, 60,120,110,130)B.(100,120,110,130,80, 60, 90)C.(100,60, 80, 90, 120,110,130)D.(100,80, 60, 90, 120,130,110)10.设有⼀组记录的关键字为{19,14,23,1,68,20,84,27,55,11,10,79},⽤链地址法构造散列表,散列函数为H(key)=key% 13,散列地址为1的链中有()个记录。
《数据结构》作业3参考答案

= 15
所以 (3,3) = (0,0) + 3 × 15 + 3 = 644 + 45 + 3 = 692
4.9 习题答案
第一步,计算 P 的 next 值,如图所示。
j
0
1
P
a
a
next[j]
-1
0
第二步,用 KMP 算法进行快速匹配,如下图。
0
1
234567
T
a
b
abbaab
P
a
a
b
j=1,next[1]=0
图 4.10(1)
(2).答案:
( , , ( ) , ( ))的图形表示和存储表示如图所示。
图 4.10(2)
4.11 习题答案
(1) Head(Tail(Tail(L1))) (2) Head(Head(Tail(L2))) (3) Head(Head(Tail(Tail(Head(L3))))) (4) Head(Head(Tail(Tail(L4)))) (5) Head(Tail(Head(L5))) (6) Head(Head(Tail(Head(Tail(L6)))))
a
a
j=0,next[0]=-1
aab
j=1,next[1]=0
aab
j=0,next[0]=-1
aab
ห้องสมุดไป่ตู้
j=0,next[0]=-1
aa
图 4.9
2 b 1 89 aA
b j=3,成功
4.10 习题答案 (1).答案:
( ( ), ( ), ( , ( , , )))的图形表示和存储表示如图所示。
数据结构作业3参考答案答案作业三数据结构作业题参考答案作业3及答案3及答案作业及答案
数据结构试卷试题及答案

数据结构试卷试题及答案一、选择题(每题5分,共40分)1. 数据结构是研究数据元素的()A. 存储结构B. 处理方法C. 逻辑结构D. 所有以上内容答案:D2. 在数据结构中,通常采用()方式来表示数据元素之间的逻辑关系。
A. 顺序存储结构B. 链式存储结构C. 索引存储结构D. 散列存储结构答案:B3. 下面哪一个不是栈的基本操作?()A. 入栈B. 出栈C. 判断栈空D. 获取栈顶元素答案:D4. 下面哪一个不是队列的基本操作?()A. 入队B. 出队C. 判断队列空D. 获取队头元素答案:D5. 下面哪一个不是线性表的特点?()A. 有且只有一个根节点B. 每个节点最多有一个前驱和一个后继C. 数据元素类型相同D. 数据元素类型可以不同答案:D6. 在下列哪种情况中,使用链式存储结构比顺序存储结构更合适?()A. 数据元素经常插入和删除B. 数据元素大小不固定C. 数据元素个数不确定D. 所有以上情况答案:D7. 下面哪一个不是树的遍历方式?()A. 前序遍历B. 中序遍历C. 后序遍历D. 翻转遍历答案:D8. 在下列哪种情况中,使用散列存储结构比其他存储结构更合适?()A. 数据元素个数较少B. 数据元素查找频繁C. 数据元素插入和删除频繁D. 数据元素大小不固定答案:B二、填空题(每题5分,共30分)9. 栈是一种特殊的线性表,它的插入和删除操作都限定在表的一端进行,这一端称为______。
答案:栈顶10. 队列是一种特殊的线性表,它的插入操作在表的一端进行,这一端称为______,而删除操作在另一端进行,这一端称为______。
答案:队尾、队头11. 二叉树中的节点包括______和______。
答案:根节点、子节点12. 在图的存储结构中,邻接矩阵表示法用______个一维数组来表示图中各个顶点之间的关系。
答案:两个13. 散列存储结构中,关键码到存储地址的映射方法称为______。
数据结构试卷3答案

数据结构试题3参考答案一、单项选择题(本大题共15小题,每小题2分,共30分) 1.D 2.B3.C4.B5.D6.A 7.C8,D9,A10.C11.D 12.C13.D 14.C15.B二、填空题(本大题共10小题,每小题2分,共20分) 16.存储(或存储结构)17.p ->next ->next18.进栈和退栈.进栈和退栈19.12 12 2020.A[4][8] 21.384 22.abefcdg 23.快速排序、堆排序、希尔排序24.2.2 25.多关键字多关键字三、解答题(本大题共4小题,每小题5分,共20分) 26.(1)对第一结点的操作和其他结点一样,无须特殊处理。
((2)空表和非空表的处理相统一了。
)空表和非空表的处理相统一了。
27.28.该图的图形为:该图的图形为:深度优先遍历序列为:深度优先遍历序列为:abdce abdce广度优先遍历序列为:广度优先遍历序列为:abedc abedc2929..(1)对关键字3535、、2020、、33和48进行查找的比较次数为3、2、1、1;1、1;(2)平均查找长度(2)平均查找长度59521123=++++=ASL四、算法阅读题(本大题共4小题,每小题5分,共20分) 30. ①S1=S1->next ②s2=s2->next ③s2(或s2!=NULL 或s2&&!s1) ④s1(或s1!=NULL 或s1&&!s2) ⑤return 0 31.(1)查询链表的尾结点)查询链表的尾结点(2)将第一个结点链接到链表的尾部,作为新的尾结点)将第一个结点链接到链表的尾部,作为新的尾结点 (3)返回的线性表为(a 2,a 3,…,a n ,a 1)32. ①(i+1)%2(或1-i) ②Q->rear[i] ③(Q->rear[i]+)%Maxsize 33.(1)Leafhead F H G D ∧(2)中序遍历二叉树,按遍历序列中叶子结点数据域的值构建一个以Leafhead为头指针的逆序单链表(或按二叉树中叶子结点数据自右至左链接成一个链表)。
数据结构3-答案

一、单选题:C D B A A A C B C C二、填空题:n n/2 7 n2+2n3+…..+(m-1)n m+1 只有根节点的二叉树逆序1000000 2000 最大24三、应用题1、参考答案A B C D E F G H10 001 11 0001 0110 0111 010 00002、0 1 2 3 4 5 6 7 8 9 1012 100 25 16 17 18 8 40 7(1) (2) (1) (1) (1) (1) (1) (3)(4)搜索成功的平均搜索长度为ASL succ = 19(1 + 2+ 1 + 1 + 1 + 1 +1+ 3+ 4) = 533、4、最小生成树或最小生成树不唯一,有两棵,如上所示。
5、四、算法设计题1、void Bucketsort ( ElementType A[ ], int N )12 45635 6 11 1618 1 24563{int Counter[ 3 ];int i, j, k;for ( i = 0; i < 3; i++ )Counter[ i ] = 0;for ( i = 0, i < N; i++ ) {if ( A[ i ] == false )Counter[ 0 ] ++;elseif ( A[ i ] == maybe )Counter[ 1 ] ++;elseCounter[ 2 ] ++;}k = 0;for ( i = 0; i < Counter[ 0 ]; i++ )A[ i ] = false;k += Counter[ 0 ];for ( i = 0; i < Counter[ 1 ]; i++ )A[ k+i ] = maybe;k += Counter[ 1 ];for ( i = 0; i < Counter[ 2 ]; i++ )A[ k+i ] = true;}2、int BinaryTree<Type> :: leaf ( BinTreeNode<Type> * ptr ) {if ( ptr == NULL ) return 0;else if ( ptr->leftChild == NULL && ptr->rightChild == NULL ) return 1;else return leaf ( ptr->leftChild ) + leaf ( ptr->rightChild );}3、int max=0;int Find_All_Path(Graph *G,int S,int T, int K)/{G->setMark(S,VIEITED);if(S==T) //找到了一条简单路径{ if (max<K) max=K; return(max); }elsefor(int p=G->first(S);p<G->n();p=G->next(S,p){if(G->getMark(p)==UNVISITED) Find_All_Path(G,p,T,k+1); //继续寻找}G->setMark(S,UNVIEITED); }。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构参考答案及评分标准一、选择题(2分*15=30分)
1.A 2.C 3.B 4.D 5.B 6.D
7.D
8.D
9.B
10. B
11.C
12.C
13.A
14.A
15.C
二、填空题(每空2分,共20分)
1.(n-1)/2
2.栈
3.head(tail(tail(head(tail(head(A))))))
4.2k-1、2k-1
5.n-1
6.n、n+1
7.直接插入排序
8.第I列非零元素个数
三、综合题(40分)
1.(1)查找29和90都需要4次比较才能成功(2分)
(2)若采用顺序查找,分别需要5次和10次才能查找成功(2分)(3)(4分)
2.(1)(4分)
(2)GDACBFE(4分)
3.(图4
哈夫曼编码为:概率为0.23的字符编码为:00
概率为0.11的字符编码为:010
概率为0.05的字符编码为:0110
概率为0.03的字符编码为:0111
概率为0.29的字符编码为:10
概率为0.14的字符编码为:110
概率为0.07的字符编码为:1110
概率为0.08的字符编码为:1111
4.(1)(4分)
(1)每个事件的最早开始时间Ve和最晚开始时间Vl
(2)每个活动的最早开始时间e()和最晚开始时间l()(4分)
(3)此工程最早完成时间为43。
(2分)
(4)关键路径为<1,3><3,2><2,5><5,6>(2分)
四、算法题(共10分,根据完成情况酌情给分)
V oid inorderList(LinkList *&L, ElemType x)
/*L是一个从小到大有序排列的单链表,表头指针为L*/
{
LinkList *s,*p,*q;
S=(LinkList *)maloc(sizeof(LinkList));
S->data=x;
S->next=NULL;
If(L= =NULL || x<L->data)
{ S->next=L;
L=s;
}
else
{q=L;
p=p->next;
while (p!=NULL && x>p->data) {q=p;
p= p->next;
}
s->next=p;
q->next=s;
}
}。