数据结构(本科)期末综合练习三(运算题)
数据结构(本)期末综合练习(2013年6月)
数据结构(本)期末综合练习2013年6月期末综合练习一1. 在数据结构和算法中,与所使用的计算机有关的是()。
A.数据元数间的抽象关系B.数据的存储结构C.算法的时间复杂度 D.数据的逻辑结构2. 一种逻辑结构在存储时()。
A.只要存储数据元素间的关系 B.只能采用一种存储结构C.可采用不同的存储结构 D.只要存储数据元素的值3 .对顺序表,以下叙述中正确的是 ( )。
A.用一组地址连续的存储单元依次存放线性表的数据元素B.各个数据元素的首地址是连续的C.数据元素不能随机访问D.插入操作不需要移动元素4 .对链表, 以下叙述中正确的是()。
A.不能随机访问任一结点 B.结点占用的存储空间是连续的C.插入删除元素的操作一定要要移动结点 D.可以通过下标对链表进行直接访问5.设有一个长度为25的顺序表,要删除第10个元素(下标从1开始),需移动元素的个数为()。
A.9 B.10 C.15 D.166.线性表在存储后,如果相关操作是:要求已知第i个结点的位置访问该结点的前驱结点,则采用()存储方式是不可行的。
A.单链表 B.双链表 C.单循环链表 D.顺序表7. 设单向链表中,指针p指向结点A,若要删除A的直接后继,则所需修改指针的操作为( )。
A.p->next=p->next->next;B.p=p->next;C.p=p->next->next;D.p->next=p ;8.栈和队列的共同特点是()。
A.都是先进后出 B.元素都可以随机进出C.只容许在端点处插入和删除元素 D.都是先进先出9.元素1,3,5,7按顺序依次进栈,按该栈的可能输出序列依次入队列,该队列的可能输出序列是()。
(进栈出栈可以交替进行)。
A.7,5,3,1 B.7,3,1,5C.7,5,1,3 D.5,1,3,710.元素2,4,6,8按顺序依次进栈,按该栈的的可能输出序列依次入队列,该队列的可能输出序列是()(进栈出栈可以交替进行)。
数据结构本期末综合测试
精心整理数据结构(本)期末综合练习综合练习一一、单项选择题1, 2B.一种逻辑结构只能有唯一的存储结构C. 一种逻辑结构可以有不同的存储结构D.线性表的顺序存储结构必须占用连续的存储空间4.在一个单向链表中,在p所指结点之后插入一个s所指的结点时,可执行();和p->next=s;A.p= s; B. p->next=s->next;C.p=s->next; D. s->next=p->next;56)。
7C.插入元素的操作不需要移动元素 D.删除元素的操作需要移动元素8.设一棵有8个叶结点的二叉树,度数为1的结点有3个,则该树共有()个结点。
A.20 B.18 C.17 D.169.图状结构中数据元素的位置之间存在()的关系。
A.一对一 B.多对多C.一对多 D.每一个元素都有一个直接前驱和一个直接后继))(C. DABCC D .FAbcC13.设有一个14阶的对称矩阵A(第一个元素为a1,1),采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a4,3在一维数组B中的下标是()。
A.9 B.10 C.11 D.8 14.元素111,113,115,117按顺序依次进栈,则该栈的不可能输出序列是()(进栈出栈可以交替进行)。
A.117,115,113,111 B.111,113,115,1171,1其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a4,2在一维数组B中的下标是()。
A.9 B.8 C.7 D.1019.如图1所示的一个图,若从顶点a出发,按深度优先搜索法进行遍历,则可能得20能________。
图23.________结构中,数据元素间存在一对多的关系。
4. 对16个元素的序列用冒泡排法进行排序,通常需要进行________趟冒泡。
5.对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的三项信息是____ ___。
(完整word版)《数据结构》期末考试试题及答案资料
2.特殊、栈顶
3.LOC(a1)+(i-1)*L
4.p->next=q->next;q->next->prior=p; q->next=p;p->prior=q;
5.n(n-1)/2、n-1
6.ADCBFEG、ABCDEFFG
7.ABC、ABC
二、应用题
1 (1)Hash 表(4 分) 地址 0 1 2 3 4 5 6 7 8 9 10 11 12
#define LIST_INIT_SIZE 100 //顺序表初始分配容量
typedef struct {
Elemtype *elem;
//顺序存储空间基址
int length;
//当前长度(存储元素个数)
}SqList;
设计一个算法,删除其元素值为 x 的结点(假若 x 是唯一的)。并求出其算法的
O(n2)(1 分)。 5、7 分 (1)4 分
v -5 6 7 3 -1 18 8 12 25 53 18
18] 25 53 18
18 25] 53 18
18 25 53] 18
18 18 25 53]
A
(2)4 分
B1
C
3
2
5 D4
E
F
(4 分)
6、(1) 3 分
E
F
AB CD
第 6 页 共 126 页
5. 已知一网络的邻接矩阵如下,求从顶点 A 开始的最小生成树。(8 分,要有
过程)
A BC D EF
A 6 5 1
B
6
5
3
C 5 7 2
D
1
5
7
6
数据结构期末考试题及答案
数据结构期末考试题及答案一、选择题(每题2分,共20分)1. 在数据结构中,线性表的顺序存储结构通常使用什么数据结构来实现?A. 链表B. 数组C. 栈D. 队列答案:B2. 以下哪个是二叉树的性质?A. 每个节点最多有两个孩子B. 每个节点最多有三个孩子C. 每个节点最多有四个孩子D. 每个节点最多有五个孩子答案:A3. 在图的遍历算法中,深度优先搜索(DFS)和广度优先搜索(BFS)的区别是什么?A. DFS使用队列,BFS使用栈B. DFS使用栈,BFS使用队列C. DFS和BFS都使用栈D. DFS和BFS都使用队列答案:B...20. 以下哪个排序算法的时间复杂度为O(n^2)?A. 冒泡排序B. 选择排序C. 插入排序D. 所有上述排序算法答案:D二、简答题(每题10分,共30分)1. 简述链表和数组的区别。
答案:链表和数组都是用来存储数据的线性数据结构。
数组是连续的内存空间,可以随机访问,但插入和删除操作效率较低;链表由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针,不支持随机访问,但插入和删除操作较为高效。
2. 什么是递归?请给出一个递归算法的例子。
答案:递归是一种算法设计技术,它允许函数调用自身来解决问题。
递归通常包含基本情况和递归情况。
例如,计算阶乘的递归算法:f(n) = n * f(n-1),其中基本情况是f(1) = 1。
...三、算法设计题(每题25分,共50分)1. 给定一个整数数组,请设计一个算法找出数组中的第k大元素。
答案:可以采用快速选择算法,类似于快速排序的划分过程,通过随机选择一个元素作为基准,将数组分为两部分,一部分包含比基准大的元素,另一部分包含比基准小的元素。
然后根据k与基准元素的位置关系,决定是继续在左侧子数组还是右侧子数组中进行查找。
2. 描述如何使用哈希表解决字符串匹配问题。
答案:哈希表可以用于实现字符串匹配的KMP算法。
首先,构建模式字符串的前缀函数,该函数用于记录模式字符串中每个位置的最长相同前缀和后缀的长度。
国家开放大学《数据结构(本)》综合练习题参考答案
A. 111,113,115,117 B. 117,115,111,113 C. 117,115,113,111 D. 113,111,117,115 11.图状结构中数据元素的位置之间存在( )的关系。 A. 每一个元素都有一个且只有一个直接前驱和一个直接后继 B. 多对多 C. 一对一 D. 一对一 12.以下说法正确的是( )。 A. 栈和队列的特点都是后进后出 B. 队列的特点是先进后出 C. 栈的特点是先进先出 D. 栈的特点是先进后出 13.一个单链表中,在 p 所指结点之后插入一个 s 所指的结点时,可执行: s->next=p->next;和( )。 A. s=p->next; B. p=s->next;
国家开放大学《数据结构(本)》综合练习题参考答案
一、填空题 1.对稀疏矩阵进行压缩存储,可采用三元组表,一个有 10 行的稀疏矩阵 A 共有 97 个零元素,其相应的三元组表共有 3 个元素。该矩阵 A 有(10)列。 2.结构中的数据元素存在多对多的关系称为(图状)结构。 3.在单向链表中,q 指向 p 所指结点的直接后继结点,要删除 q 所指结点,可以 用操作(p->next;)= q->next;。 4.n 个元素进行冒泡法排序,第 j 趟冒泡要进行(n-j)次元素间的比较。 5.对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的行 下标、列下标和(数组元素)三项信息。 6.中序遍历(二叉排序树)树可得到一个有序序列。 7.队列的操作特点是后进(后出)。 8.待排序的序列为 8,3,4,1,2,5,9,采用直接选择排序算法,当进行了两 趟选择后,结果序列为(1,2,4,8,3,5,9)。 9.n 个元素进行冒泡法排序,通常需要进行(n-1)趟冒泡。 10.广义表((a,b),d,e((i,j),k))的长度是(4) 。 11.中序遍历二叉排序树可得到一个(有序)的序列。 12.广义表的(c,a,(a,b),d,e,((i,j),k))深度是(3)。 13.广义表(c,a,(a,b),d,e,((i,j),k))的长度是(6)。 14.对稀疏矩阵进行压缩存储,可采用三元组表,一个有 10 行 10 列的稀疏矩阵 A 共有 95 个零元素,其相应的三元组表共有(5)个元素。 15.广义表的(c,a,(a,b),d,e,((i,j),k))深度是(3)。 16.在对一组记录(50,49,97,22,16,73,65,47,88)进行直接插入排序 时,当把第 7 个记录 65 插入到有序表时,为寻找插入位置需比较(3)次。 17. 循 环 队 列 在 规 定 少 用 一 个 存 储 空 间 的 情 况 下 , 队 空 的 判 定 条 件 为 (front==rear)。 18.一棵有 5 个叶结点的哈夫曼树,该树中总共有(9)个结点。 19.c 语言中,字符串“E”存储时占(2)个字节。
数据结构期末考试题及答案
数据结构期末考试题及答案一、选择题(每题2分,共10题)1. 数据结构是指()A. 存储和组织数据的方式B. 对数据进行计算和处理的方法C. 数据的物理表示形式D. 数据的逻辑结构答案:A. 存储和组织数据的方式2. 在数据结构中,栈是一种()A. 先进先出的数据结构B. 后进先出的数据结构C. 随机存取的数据结构D. 按键值查找的数据结构答案:B. 后进先出的数据结构3. 下列哪种数据结构不支持随机访问?()A. 队列B. 栈C. 数组D. 链表答案:D. 链表4. 在二叉树中,每个节点最多可以有几个子节点?()A. 0B. 1C. 2D. 无限多答案:C. 25. 在图的表示方法中,邻接矩阵适用于()A. 稠密图B. 稀疏图C. 有向图D. 无向图答案:A. 稠密图6. 下列排序算法中,最坏情况时间复杂度为O(nlogn)的是()A. 冒泡排序B. 插入排序C. 快速排序D. 选择排序答案:C. 快速排序7. 广度优先搜索算法用于()A. 求最短路径B. 求全排列C. 求最小生成树D. 求图的连通分量答案:A. 求最短路径8. 哈希表的查找时间复杂度为()A. O(1)B. O(n)C. O(logn)D. O(n^2)答案:A. O(1)9. AVL树是一种()A. 无序树B. 有序树C. 平衡树D. 非平衡树答案:C. 平衡树10. 以下哪个不属于基本的查找算法?()A. 二分查找B. 插值查找C. 散列查找D. 顺序查找答案:C. 散列查找二、填空题(每题4分,共4题)11. 下列不是线性表的是()答案:二叉树12. 在冒泡排序中,每一轮的比较次数是________答案:n-113. 在堆排序中,堆的建立时间复杂度为________答案:O(n)14. 从一个顶点到其余各顶点的最短路径算法是________答案:Dijkstra算法三、简答题(每题10分,共3题)15. 请简要说明栈的应用场景,并给出一个具体实例。
本科-数据结构本期末综合练习
1.数据的物理结构(D )。
A •与数据的逻辑结构无关C.只包括数据元素间关系的表示B .仅仅包括数据元素的表示D .包括数据元素的表示和关系的表示D•至少有一个数据项为指针类型3.从n个数中选取最大元素,(CA •基本操作是数据元素间的交换C •算法的时间复杂度是0(n)4.线性表的顺序结构中,(C ))。
B •算法的时间复杂度是0(n2)D .需要进行(n+1)次数据元素间的比较D .顺序表B )(设头指针为head)oB. head->next= =NULLD . head!=NULL数据结构(本)期末综合练习期末综合练习一、单项选择题2•数据元素是数据的基本单位,它( C )A•只能有一个数据项组成B•至少有二个数据项组成C•可以是一个数据项也可以由若干个数据项组成A •逻辑上相邻的元素在物理位置上不一定相邻B •数据元素是不能随机访问的C .逻辑上相邻的元素在物理位置上也相邻D •进行数据元素的插入、删除效率较高5 •以下表中可以随机访问的是( D )oA .单向链表B .双向链表C •单向循环链表6.带头结点的单向链表为空的判断条件是(A . head = =NULLC. head->next= =head7.设顺序存储的线性表长度为n,对于删除操作,设删除位置是等概率的,则删除一个元素平均移动元素的次数为(A )A . (n+1)/2B . n C. 2n D . n-i8.线性结构中数据元素的位置之间存在( A )的关系。
A . 一对一B . 一对多C .多对多D .每一个元素都有一个直接前驱和一个直接后继9.设top是一个链栈的栈顶指针,栈中每个结点由一个数据域data和指针域next组成,设用x接收栈顶元素,则岀栈操作为(A )oA . x=top->data;top=top->next;B . top=top->next;x=top->data;C . x=top-> next;top=top-> data;D . top->next =top; x=top->data;10 .设顺序存储的线性表长度为n,要删除第i个元素,按课本的算法,当i= ( C )时,移动元素的次数为3A . 3B . n/2C . n-3D . 411.以下说法正确的是( C )oA .队列是后进先出B .栈的特点是后进后岀C .栈的删除和插入操作都只能在栈顶进行14 . 一个栈的进栈序列是 a ,b ,c ,d ,则栈的不可能的出栈序列是( AA. adbc B . bead C . ebadD . deba15 .设有一个12阶的对称矩阵(矩阵A 的第一个元素为 A ,采用压缩存储方式将其下三角部分以行序为主序存储到一维数组印,1,数组b 的下标从1开始),则矩阵b 中A 中第4行的元素在数组b 中的下A . 7< i < 10B . 11< i < 15C . 9< i < 14A . 2mC . 2m+1D . m/217 .设有一个带头结点的链队列,队列中每个结点由一个数据域data 和指针域next 组成,front 和rear 分别为链队列的头指针和尾指针,要执行出队操作,用 x 保存出队元素的值,p 为指向结点类型的指针,可执行如下操作: p=front->next;x=p->data;然后执行(B18.A . front=p->next; C front=p;以下说法不正确的是( D )°B . front->next=p->next; D . front->next =p; 19. 20. A .连通图 B .连通图C .连通图 G 一定存在生成树 G 的生成树中一定包含 G 的所有顶点G 的生成树中不一定包含 G 的所有边 G 的生成树可以是不连通的D .连通图散列查找的原理是(AA .在待查记录的关键字值与该记录的存储位置之间建立确定的对应关系B .按待查记录的关键字有序的顺序方式存储C .按关键字值的比较进行查找D .基于二分查找的方法 空串的长度为( A )°B . 1C . 221 .排序过程中,每一趟从无序子表中将一个待排序的记录按其关键字的大小放置到已经排好序的子序 列的适当位置,直到全部排好序为止,该排序算法是 (D ) °A .选择排序 C .冒泡排序B .快速排序 D .直接插入排序22 .采用顺序查找法对长度为 n 的线性表进行查找(不采用表尾设监视哨的方法),最坏的情况下要进行(B )次元素间的比较。
数据结构(本)期末综合练习
数据结构(本)期末综合练习综合练习一一、单项选择题1.设有头指针为head的带有头结点的非空单向循环链表, 指针p指向其尾结点, 要删除头结点,并使其仍为单向循环链表,则可利用下述语句head =head->next ;()。
A.p =head; B.p=NULL; C.p->next =head; D.head=p;2.在一个单链表中p指向结点a, q指向结点a的直接后继结点b,要删除结点b,可执行()。
A.p->next=q->next ; B.p=q->next;C.p->next=q; D.p->next=q;3. 以下说法不正确的是A. 线性表的链式存储结构不必占用连续的存储空间B.一种逻辑结构只能有唯一的存储结构C. 一种逻辑结构可以有不同的存储结构D.线性表的顺序存储结构必须占用连续的存储空间4.在一个单向链表中,在p所指结点之后插入一个s所指的结点时,可执行();和p->next=s;A.p= s; B. p->next=s->next;C.p=s->next; D. s->next=p->next;5.把数据存储到计算机中,并具体体现( )称为物理结构。
A. 数据元素间的逻辑关系B.数据的处理方法C.数据的性质D.数据的运算6.设有一个长度为23的顺序表,要删除第8个元素需移动元素的个数为()。
A.16 B.14 C.15 D.137.链表所具备的特点之一是()。
A.可以随机访问任一结点 B.需要占用连续的存储空间C.插入元素的操作不需要移动元素 D.删除元素的操作需要移动元素8.设一棵有8个叶结点的二叉树,度数为1的结点有3个,则该树共有()个结点。
A.20 B.18 C.17 D.169.图状结构中数据元素的位置之间存在()的关系。
A.一对一 B.多对多C.一对多 D.每一个元素都有一个直接前驱和一个直接后继10.一棵具有5层的完全二叉树,最后一层有4个结点,则该树总共有()个结点。
最新国家开放大学电大《数据结构(本)》期末题库及答案
最新国家开放大学电大《数据结构(本)》期末题库及答案考试说明:本人针对该科精心汇总了历年题库及答案,形成一个完整的题库,并且每年都在更新。
该题库对考生的复习、作业和考试起着非常重要的作用,会给您节省大量的时间。
做考题时,利用本文档中的查找工具,把考题中的关键字输到查找工具的查找内容框内,就可迅速查找到该题答案。
本文库还有其他网核及教学考一体化答案,敬请查看。
《数据结构》题库及答案一一、单项选择题(每小题3分,共30分)试题答案及评分标准(供参考)一、单项选择题(每小题3分,共30分)1.C 2.B 3.A 4.C 5.B6.C 7.A 8.D 9.A 10.D二、填空题(每小题2分,共24分)11.先出 12.树形 13.行下标列下标数组元素 14.3 15.存储位置 16. 1017. 20 18.二叉排序树 19.叶20.4 21. 2,4,3;5,6,8,7,9 22. a2《数据结构》题库及答案二一、单项选择题(每小题3分,共30分)二、填空题(每小题2分,共24分)三、综合题【每小题中每问5分,共30分)四、程序填空题(每空2分,共16分)试题答案及评分标准(供参考)一、单项选择题(每小题3分,共30分)1.A 2.D 3.C 4.B 5.B6.C 7.B 8.C 9.A 10.C二、填空题(每小题2分,共24分)11.图状 12. n-j 13.二叉排序树 14. 1,2,4,8,3,5,915. 4 16. 3 17. 5 18. 319. 9 20. 12 21. 32 22. 7《数据结构》题库及答案三一、单项选择题,在括号内填写所选择的标号1.输出一个二维数组b[m][n]中所有元素的时间复杂度为( )。
A.()(n) B.()(m十n)C.()(n2) D.()(m*n)2.在一个长度为n的顺序存储的有序表中搜索值为x元素时,其时间效率最高的算法的时间复杂度为( )。
3.当利用大小为n的数组顺序存储一个栈时,假定用top= =n表示栈空,则向这个栈插入一个元素时,首先应执行( )语句修改top指针。
《数据结构》期末模拟试卷及参考答案【十套】
《数据结构》模拟试卷及参考答案模拟试卷一一、单选题(每题2 分,共20分)1.以下数据结构中哪一个是线性结构?( )A. 有向图B. 队列C. 线索二叉树D. B树2.在一个单链表HL中,若要在当前由指针p指向的结点后面插入一个由q指向的结点,则执行如下( )语句序列。
A. p=q; p->next=q;B. p->next=q; q->next=p;C. p->next=q->next; p=q;D. q->next=p->next; p->next=q;3.以下哪一个不是队列的基本运算?()A. 在队列第i个元素之后插入一个元素B. 从队头删除一个元素C. 判断一个队列是否为空D.读取队头元素的值4.字符A、B、C依次进入一个栈,按出栈的先后顺序组成不同的字符串,至多可以组成( )个不同的字符串?A.14B.5C.6D.85.由权值分别为3,8,6,2的叶子生成一棵哈夫曼树,它的带权路径长度为( )。
以下6-8题基于图1。
6.该二叉树结点的前序遍历的序列为( )。
A.E、G、F、A、C、D、BB.E、A、G、C、F、B、DC.E、A、C、B、D、G、FD.E、G、A、C、D、F、B7.该二叉树结点的中序遍历的序列为( )。
A. A、B、C、D、E、G、FB. E、A、G、C、F、B、DC. E、A、C、B、D、G、FE.B、D、C、A、F、G、E8.该二叉树的按层遍历的序列为( )。
A.E、G、F、A、C、D、B B. E、A、C、B、D、G、FC. E、A、G、C、F、B、DD. E、G、A、C、D、F、B9.下面关于图的存储的叙述中正确的是( )。
A.用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关B.用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关C. 用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关D.用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关10.设有关键码序列(q,g,m,z,a,n,p,x,h),下面哪一个序列是从上述序列出发建堆的结果?( )A. a,g,h,m,n,p,q,x,zB. a,g,m,h,q,n,p,x,zC. g,m,q,a,n,p,x,h,zD. h,g,m,p,a,n,q,x,z二、填空题(每空1分,共26分)1.数据的物理结构被分为_________、________、__________和___________四种。
数据结构期末考试试题(含答案)
数据结构期末考试试题(含答案)数据结构期末考试试题(含答案)第一题:多项式相加(20分)将两个多项式 P(x) 和 Q(x) 相加,结果存储在另一个多项式 S(x) 中,请写出相应的算法,并给出其时间复杂度分析。
答案:算法如下:1. 初始化一个空多项式 S(x)。
2. 分别取多项式 P(x) 和 Q(x) 的第一项,判断指数的大小关系,并将指数较小的项加入 S(x)。
3. 若指数相同,则将两项系数相加,并将结果加入 S(x)。
4. 重复步骤2和步骤3,直到两个多项式中的所有项都被处理完。
5. 返回结果多项式 S(x)。
时间复杂度分析:- 假设 P(x) 和 Q(x) 的项数分别为 m 和 n。
- 在最坏情况下,需要比较 m+n 次指数大小,并进行 m+n-1 次系数相加。
- 因此,该算法的时间复杂度为 O(m+n)。
第二题:循环队列设计(30分)请设计一个循环队列,实现入队、出队等基本操作,并给出时间复杂度分析。
答案:定义循环队列的结构体如下:```ctypedef struct {int *data; // 存储队列元素的数组int front; // 队首指针,指向队首元素的位置int rear; // 队尾指针,指向队尾的下一个位置int maxSize; // 队列的最大容量} CircularQueue;```基本操作的实现如下:1. 初始化循环队列:```cvoid initQueue(CircularQueue *queue, int maxSize) {queue->data = (int *)malloc(sizeof(int) * maxSize);queue->front = queue->rear = 0;queue->maxSize = maxSize;}```2. 入队操作:```cint enqueue(CircularQueue *queue, int value) {if ((queue->rear + 1) % queue->maxSize == queue->front) { return 0; // 队列已满,插入失败}queue->data[queue->rear] = value;queue->rear = (queue->rear + 1) % queue->maxSize;return 1; // 插入成功}```3. 出队操作:```cint dequeue(CircularQueue *queue, int *value) {if (queue->front == queue->rear) {return 0; // 队列为空,出队失败}*value = queue->data[queue->front];queue->front = (queue->front + 1) % queue->maxSize; return 1; // 出队成功}```时间复杂度分析:- 入队和出队操作的时间复杂度均为 O(1)。
大学数据结构期末考试试题(有答案)
大学数据结构期末考试试题(有答案)大学数据结构期末考试试题(有答案)题一:单项选择题(共10题,每题2分,共20分)1. 数据结构是一种()。
A. 算法B. 数据的存储结构C. 编程语言D. 操作系统答案:B2. 下列哪个不属于线性结构?A. 数组B. 栈C. 队列D. 树答案:D3. 栈是()的一种典型应用。
A. 先进先出B. 先进后出C. 后进先出D. 后进后出答案:C4. 链表与数组的主要区别是()。
A. 链表是动态分配的,数组是静态分配的B. 链表只能存储整数,数组可以存储任意类型的数据C. 链表的访问速度比数组快D. 链表的插入和删除操作比数组快答案:A5. 在二分查找算法中,查找元素的平均时间复杂度是()。
A. O(n)B. O(logn)C. O(n^2)D. O(1)答案:B6. 以下哪种排序算法不是稳定的?A. 冒泡排序B. 快速排序C. 插入排序D. 归并排序答案:B7. 平衡二叉树的插入和删除操作的时间复杂度都是()。
A. O(n)B. O(logn)C. O(n^2)D. O(1)答案:B8. 哈希表是通过()实现的。
A. 数组B. 链表C. 树D. 图答案:A9. 拓扑排序是一种用来解决()问题的算法。
A. 最短路径B. 最小生成树C. 最大流D. 有向无环图的排序答案:D10. 图的深度优先遍历算法使用()来实现。
A. 栈B. 队列C. 数组D. 链表答案:A题二:填空题(共5题,每题4分,共20分)1. 顺序表中元素的逻辑顺序与物理位置相同,插入和删除操作会引起元素的()。
答案:移动位置2. 在树的孩子兄弟表示法中,每个结点有两个指针,一个指向它的(),一个指向它的()。
答案:第一个孩子,下一个兄弟3. 哈希表的存储时间和查找时间都为()。
答案:O(1)4. 无向连通图的最小生成树边数为()。
答案:n-1(n为结点个数)5. 平衡二叉树的定义是任意结点的左子树和右子树的高度差不超过()。
数据结构期末考试试题及答案
数据结构期末考试试题及答案一、选择题(每题2分,共20分)1. 在数据结构中,线性结构的特点是什么?A. 元素之间存在一对一的关系B. 元素之间存在一对多的关系C. 元素之间存在多对多的关系D. 元素之间存在一对一或多对多的关系2. 栈(Stack)是一种特殊的线性表,其特点是:A. 允许在表的任一位置进行插入和删除操作B. 只能在表的首端进行插入和删除操作C. 只能在表的末端进行插入和删除操作D. 插入和删除操作没有特定的限制3. 以下哪个算法是排序算法?A. 快速排序B. 深度优先搜索C. 广度优先搜索D. 二分查找4. 哈希表解决冲突的常用方法不包括:A. 开放寻址法B. 链地址法C. 二分查找法D. 再散列法5. 在图的遍历算法中,深度优先搜索(DFS)使用的是:A. 栈B. 队列C. 链表D. 树...(此处省略其他选择题)二、简答题(每题10分,共30分)1. 请简述二叉树的三种遍历方法及其特点。
2. 什么是平衡二叉树?请说明它与普通二叉树的区别。
3. 解释什么是图的邻接矩阵表示法和邻接表表示法,并比较它们的优缺点。
三、计算题(每题15分,共30分)1. 给定一个数组A[1...n],请写出一个时间复杂度为O(n)的算法,找出数组中的最大值和最小值。
2. 假设有一个链表,链表中的节点按照值递增的顺序排列,请设计一个算法删除链表中所有重复的节点。
四、编程题(每题20分,共20分)1. 编写一个函数,实现二叉搜索树的插入操作,并保证树的平衡。
数据结构期末考试答案一、选择题1. C2. B3. A4. C5. A...(此处省略其他选择题答案)二、简答题1. 二叉树的三种遍历方法包括前序遍历、中序遍历和后序遍历。
前序遍历首先访问根节点,然后递归遍历左子树,最后递归遍历右子树。
中序遍历首先递归遍历左子树,然后访问根节点,最后递归遍历右子树。
后序遍历首先递归遍历左子树,然后递归遍历右子树,最后访问根节点。
数据结构(本)期末综合练习
数据结构(本)期末综合练习综合练习一一、单项选择题1.对稀疏矩阵进行压缩存储,可采用三元组表,一个10 行8列的稀疏矩阵A共有73个零元素,其相应的三元组表共有( C )个元素。
A.8 B.80 C.7 D.102. 对稀疏矩阵进行压缩存储,可采用三元组表,一个10 行8列的稀疏矩阵A,其相应的三元组表共有6个元素,矩阵A共有( C )个零元素。
A.8 B.72 C.74 D.103.字符串( A )是“abcd321ABCD”的子串。
A. “21AB”B. “abcD”C. “aBCD”D. “321a”4. 程序段char a[ ]=“abdcacdef”;char *p=a; int n=0;while( *p!=‘\0’){ n++; p++;} 结果中,n的值是( D )。
A. 6B.8C. 7D.95.栈和队列的共同特点是( A )。
A.都是操作受限的线性结构B.元素都可以随机进出C.都是先进后出D.都是先进先出6. 10,6,2,1按顺序依次进栈,该队列的可能输出序列是( A )。
(进栈出栈可以交替进行)。
A.6,10,1,2 B.2,10,6,1 C.6,1,10,1 D.1,6,10,27. 在一个链队中,假设f和r分别为队头和队尾指针,p指向一个新结点,要为结点p所指结点赋值x,并入队的运算为p->data=x; p->next=NULL;(B )。
A. f->next=p; f=p; B.r->next=p;r=p;C.r=p; p->next=r; D.p->next=f;f=p;8. 对一个栈顶指针为top的链栈进行出栈操作,用变量e保存栈顶元素的值,则执行( B )。
A.e= top->next; top->data=e;B.e=top->data; top=top->next;C.top=top->next; e=top->data;D.top=top->next; e=data;9. 数据结构中,与所使用的计算机无关的是数据的( A ) 结构。
数据结构(本)期末综合练习(2016年6月
A. 单向链表B. 单向循环链表
C. 双向链表D. 双向循环链表
10.元素111,113,115,117按顺序依次进栈,则该栈的不可能输出序列是( )(进栈出栈可以交替进行)。
A.117,115,113,111B.111,113,115,117
C.117,115,111,113D.113,111,117,115
为二叉排序树。
D.前序遍历二叉排序树可得到一个有序序列。
24.如图1所示,若从顶点a出发,按图的广度优先搜索法进行遍历,则可能得
到的一种顶点序列为( )。
A.abecdfB.aecbdfC.aebcfdD.aedfcb
25.二叉树的第k层的结点数最多为()。
A.2K-1B.2K+1 C.2k-1D.2k-1
C.5 6 2 3 4 D. 2 3 5 6 4
31.对稀疏矩阵进行压缩存储,可采用三元组表,一个10 行8列的稀疏矩阵A,其相应的三元组表共有6个元素,矩阵A共有( )个零元素。
A.8 B.72
C.74 D.10
32. 10,6,2,1按顺序依次进栈,该队列的可能输出序列是( )。
(进栈出栈可以交替进行)。
A.6,10,1,2 B.2,10,6,1
C.6,1,10,1D.1,6,10,2
33. 算法的时间复杂度与( )有关
A. 算法本身B. 所使用的计算机
C. 算法的储时 ( )。
A.只要存储数据元素间的关系 B.只能采用一种存储结构
C.可采用不同的存储结构 D.只要存储数据元素的值
C. 〝h〞D. 变量h
19.字符串 a1=“AEIJING“,a2 =〝AEI“,a3=〝AEFANG〞a4=”AEFI“中最大的是( )。
数据结构(本)期末综合练习
数据结构(本)期末综合练习综合练习一一、单项选择题1.对稀疏矩阵进行压缩存储,可采用三元组表,一个10 行8列的稀疏矩阵A共有73个零元素,其相应的三元组表共有( C )个元素。
A.8 B.80 C.7 D.102. 对稀疏矩阵进行压缩存储,可采用三元组表,一个10 行8列的稀疏矩阵A,其相应的三元组表共有6个元素,矩阵A共有( C )个零元素。
A.8 B.72 C.74 D.103.字符串( A )是“abcd321ABCD”的子串。
A. “21AB”B. “abcD”C. “aBCD”D. “321a”4. 程序段char a[ ]=“abdcacdef”;char *p=a; int n=0;while( *p!=‘\0’){ n++; p++;} 结果中,n的值是( D )。
A. 6B.8C. 7D.95.栈和队列的共同特点是( A )。
A.都是操作受限的线性结构B.元素都可以随机进出C.都是先进后出D.都是先进先出6. 10,6,2,1按顺序依次进栈,该队列的可能输出序列是( A )。
(进栈出栈可以交替进行)。
A.6,10,1,2 B.2,10,6,1 C.6,1,10,1 D.1,6,10,27. 在一个链队中,假设f和r分别为队头和队尾指针,p指向一个新结点,要为结点p所指结点赋值x,并入队的运算为p->data=x; p->next=NULL;(B )。
A. f->next=p; f=p; B.r->next=p;r=p;C.r=p; p->next=r; D.p->next=f;f=p;8. 对一个栈顶指针为top的链栈进行出栈操作,用变量e保存栈顶元素的值,则执行( B )。
A.e= top->next; top->data=e;B.e=top->data; top=top->next;C.top=top->next; e=top->data;D.top=top->next; e=data;9. 数据结构中,与所使用的计算机无关的是数据的( A ) 结构。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
E={<1,2>,<1,3>,<2,4>,<2,5>,<3,4>,<4,5>,<4,6>,<5,1>,<5,3>,6,5>};
假定该图采用邻接表表示,每个顶点邻接表中的边结点都是按照终点序号(即数值域的值)从大到小的次序链接的,试按照遍历算法写出:
顶点: a b c d e
边结点数:
30. 已知一个图的顶点集V和边集G分别为:
V={1,2,3,4,5,6};
E={<1,2>,<1,3>,<2,4>,<2,5>,<3,4>,<4,5>,<4,6>,<5,1>,<5,3>,6,5>};
先根:
后根:
按层:
12. 已知一棵二叉树的前序和中序序列,求该二叉树的后序序列。
先根序列:A,B,C,D,E,F,G,H,I,J
中根序列:C,B,A,E,F,D,I,H,J,G
后根序列:
13. 已知一棵二叉树的中序和后序序列如下,求该二叉树的前序序列。
答(1):
(2):
34. 已知一个图的顶点集V和边集G分别为:
V={1,2,3,4,5,6};
E={(1,2),(1,3),(2,4),(2,5),(3,4),(4,5),(4,6),(5,1),(5,3),(6,5)};
18. 一个一维数组a[10]中存储着有序表 (15,26,34,39,45,56,58,63,74,76),根据折半搜索所对应的判定树,写出该判定树中度为1的结点个数,并求出在等概率情况下进行成功搜索时的平均搜索长度。
度为1的结点个数:
平均搜索长度:
19. 已知一个有序表(15,26,34,39,45,56,58,63,74,76,83,94)顺序存储于一维数组a[12]中,根据折半搜索过程填写成功搜索下表中所给元素34, 56, 58, 63, 94时的比较次数。
假定该图采用邻接矩阵表表示,试按照遍历算法写出:
(1) 从顶点2出发进行深度优先搜索所得到的顶点序列;
(2) 从顶点2出发进行广度优先搜索所得到的顶点序列。
答(1):
(2):
33. 已知一个图的顶点集V和边集G分别为:
V={1,2,3,4,5,6};
E={(1,2),(1,3),(2,4),(2,5),(3,4),(4,5),(4,6),(5,1),(5,3),(6,5)};
假定该图采用邻接矩阵表表示,试按照遍历算法写出:
(1) 从顶点1出发进行深度优先搜索所得到的顶点序列;
(2) 从顶点1出发进行广度优先搜索所得到的顶点序列。
38 74 68 30 72
待查元素:
比较次数:
21. 假定一个线性序列为 (56,27,34,95,73,16,50,62,65),根据此线性序列中元素的排列次序生成一棵二叉搜索树,求出该二叉搜索树的高度(假定树根结点的高度为0)、度为2的结点个数和叶子结点个数。
左单旋转结点个数:
右单旋转结点个数:
先左后右双旋转结点个数:
先右后左双旋转结点个数:
不调整结点个数:
27. 假定一组记录为(38,42,55,15,23,44,30,74,48,26),按次序插入每个结点生成一棵AVL树,给出最后得到的AVL树中度为2、度为1和度为0的结点个数。
单分支结点数:
两分值分别为3,7,8,2,6,10,14,试以它们为叶子结点生成一棵霍夫曼树,求出该树的带权路径长度、高度、双分支结点数。
带权路径长度:
高度:
双分支结点数:
结点 a b c d e
出度
入度
29. 已知图G=(V,E),其中V={a,b,c,d,e},E={<a,b>,<b,a>,<c,b>,<c,d>,<d,e>,<e,a>,<e,c>},请问该图的邻接表中,每个顶点单链表各有多少边结点。
34 56 58 63 94 元素
比较次数
20. 假定一个线性序列为 (38,52,25,74,68,16,30,54,90,72),根据此线性序列中元素的排列次序生成的一棵二叉搜索树,求出对该二叉搜索树搜索38,74,68,30,72等元素时的比较次数。
2. 设有一个二维数组A[10][20],按行存放于一个连续的存储空间中,A[0][0]的存储地址是200,每个数组元素占1个存储字,则A[6][2]的地址是多少。
3. 设有一个二维数组A[10][20],按列存放于一个连续的存储空间中,A[0][0]的存储地址是200,每个数组元素占1个存储字,则A[6][2]的地址是多少。
中序:
后序:
按层:
10. 假定一棵二叉树的广义表表示为A(B(,D(G)),C(E,F)),分别写出对它进行前序、中序、按层遍历的结果。
前序:
中序:
按层:
11. 假定一棵普通树的广义表表示为a(b(e),c(f(h,i,j),g),d),分别写出先根、后根、按层遍历的结果。
调整:
25. 假定一组记录为(40,28,16,56,50,32,30,63,44,38),按次序插入每个记录生成一棵AVL树,请回答插入时造成不平衡的结点个数。
插入时造成不平衡的结点个数:
26. 假定一组记录为(36,75,83,54,12,67,60,40),按次序插入每个结点生成一棵AVL树,请回答在插入时需进行"左单旋转"、"右单旋转"、"先左后右双旋转"、"先右后左双旋转","不调整"的结点数各是多少?
高度:
度为2的结点个数:
叶子结点数:
22. 假定一个线性序列为 (38,42,55,15,23,44,30,74,48,26),根据此线性序列中元素的排列次序生成一棵二叉搜索树,求出该二叉搜索树中左子树为空的所有单支结点和右子树为空的所有单支结点,请按照结点值从小到大的次序写出。
序号: 0 1 2 3 4 5 6 7 8 9 10
a b c d e f g h i j k -1 0 1 1 3 0 5 6 6 0 9 data:
parent:
叶子结点数:
后序序列:c,e,d,b,i,j,h,g,f,a
高度: 度为2的结点数: 度为1的结点数: 度为0的结点数:
15. 已知一棵二叉树的静态数组表示(即顺序存储)如下,其中-1表示空,请分别写出该二叉树的前序、中序、后序遍历序列。
0 1 2 3 4 5 6 7 8 9 10 11 12
度为2的结点个数:
度为1的结点个数:
度为0的结点个数:
28. 已知图G=(V,E),其中V={a,b,c,d,e},E={<a,b>,<b,a>,<c,b>,<c,d>,<d,e>,<e,a>,<e,c>},请写出各结点的出度和入度。
8. 设有一个三维数组A[10][20][15],按页∕行∕列存放于一个连续的存储空间中,每个数组元素占4个存储字,首元素A[0][0][0]的存储地址是1000,则A[8][4][10]存放于什么地方。
9. 假定一棵二叉树广义表表示为a(b(c),d(e,f)),分别写出对它进行中序、后序、按层遍历的结果。
中根序列:c,b,d,e,a,g,i,h,j,f
后根序列:c,e,d,b,i,j,h,g,f,a
先根序列:
14. 已知一棵二叉树的中序和后序序列如下,求该二叉树的高度(假定空树的高度为-1)和度为2、度为1及度为0的结点个数。
中序序列:c,b,d,e,a,g,i,h,j,f
20 8 46 5 15 30 -1 -1 -1 10 18 -1 35
前序序列:
中序序列:
后序序列:
16. 已知一棵树的静态双亲表示如下,其中用-1表示空指针,树根结点存于0号单元,分别求出该树的叶子结点数、单分支结点数、两分支结点数和三分支结点数。
4. 设有一个10?10的矩阵A,将其下三角部分按行存放在一个一维数组B中,A[0][0]存放于B[0]中,那么A[8][5]存放于B中什么位置。
5. 设有一个10?10的对称矩阵A,将其上三角部分按行存放在一个一维数组B中,A[0][0]存放于B[0]中,那么A[8][5]存放于B中什么位置。
左子树为空的所有单支结点:
右子树为空的所有单支结点:
早知今日读书是,悔作从前任侠非。——李欣
23. 已知一棵二叉搜索树的广义表表示为:28(12(,16),49(34(30),72(63))),求出从中依次删除72,12,49,28结点后,得到的二叉搜索树的广义表表示。假定每次删除双支结点时是用它的中序后继结点的值来取代,接着删除其中序后继结点。
(1) 从顶点1出发进行深度优先搜索所得到的顶点序列;
(2) 从顶点1出发进行广度优先搜索所得到的顶点序列。
答(1):
(2):
32. 已知一个图的顶点集V和边集G分别为:
V={1,2,3,4,5,6};
E={<1,2>,<1,3>,<2,4>,<2,5>,<3,4>,<4,5>,<4,6>,<5,1>,<5,3>,6,5>};
6. 设有一个二维数组A[m][n]采用按行存储,假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个存储字,则A[4][4]存放在什么位置。