数据结构与算法期末练习题(含答案)
- 格式:doc
- 大小:279.38 KB
- 文档页数:23
数据结构期末考试题及答案一、单项选择题(每题2分,共20分)1. 在数据结构中,算法的时间复杂度是指()。
A. 执行算法所需要的计算工作量B. 执行算法所需要的存储空间C. 执行算法所需要的时间D. 执行算法所需要的内存大小答案:A2. 线性表的顺序存储结构和链式存储结构相比,其优点是()。
A. 插入和删除操作快B. 存储密度高C. 存储空间可以动态分配D. 存储空间利用率高答案:B3. 栈的基本运算中,不包括()。
A. 入栈B. 出栈C. 取栈顶元素D. 排序答案:D4. 在二叉树的遍历中,先序遍历的顺序是()。
A. 先根后子B. 先子后根C. 先左后右D. 先右后左答案:A5. 哈希表解决冲突的方法不包括()。
A. 分离链接法B. 线性探测法C. 链地址法D. 二分查找法答案:D6. 一个图的邻接矩阵表示法中,若第i行第j列的元素为1,则表示()。
A. 顶点i和顶点j之间有一条边B. 顶点i和顶点j之间没有边C. 顶点i和顶点j之间有n条边D. 顶点i和顶点j之间有m条边答案:A7. 在查找算法中,二分查找法适用于()。
A. 线性表B. 哈希表C. 树形结构D. 图结构答案:A8. 快速排序算法的时间复杂度在最坏情况下是()。
A. O(n)B. O(nlogn)C. O(n^2)D. O(2^n)答案:C9. 一个有n个顶点的无向图,其边数最多为()。
A. nB. n(n-1)/2C. n(n+1)/2D. 2n答案:B10. 以下哪个不是排序算法()。
A. 冒泡排序B. 选择排序C. 插入排序D. 归并排序答案:D二、填空题(每题2分,共20分)1. 在数据结构中,一个算法的空间复杂度是指算法执行过程中所需要的___________。
答案:存储空间2. 线性表的链式存储结构中,每个节点包含___________和___________。
答案:数据元素,指针3. 栈的特点是___________,___________。
数据结构期末考试试题及答案一、选择题(每题2分,共20分)1. 在数据结构中,算法的时间复杂度是指()。
A. 编写代码的时间B. 代码的长度C. 执行代码所需的时间D. 执行代码所需的指令条数2. 下列关于队列的描述,错误的是()。
A. 队列是先进先出(FIFO)的线性表B. 队列允许在一端进行插入操作C. 队列的插入操作称为入队D. 队列的删除操作称为出栈3. 对于长度为n的有序数组,使用二分查找法查找一个元素的平均时间复杂度是()。
A. O(n)B. O(n^2)C. O(log n)D. O(1)4. 在图的遍历中,深度优先搜索(DFS)使用的数据结构是()。
A. 栈B. 队列C. 链表D. 数组5. 哈希表的冲突可以通过多种方式解决,以下哪种不是解决冲突的方法?()A. 开放寻址法B. 链地址法C. 线性探测法D. 排序法6. 一个完全二叉树共有700个节点,它的最大节点数是()。
A. 700B. 701C. 1400D. 14017. 快速排序算法的最坏情况发生在()。
A. 每次选择的基准都是最大值B. 数据已经有序C. 数据已经完全逆序D. 所有数据元素相等8. 在一个具有n个节点的二叉搜索树中,最坏情况下查找一个元素的时间复杂度是()。
A. O(n)B. O(log n)C. O(n^2)D. O(1)9. 堆排序算法中,将一个堆调整为最大堆或最小堆的过程称为()。
A. 堆调整B. 堆构建C. 堆分解D. 堆维护10. 以下哪个不是B树的特性?()A. 所有键值都存储在内部节点和叶子节点中B. 所有叶子节点都在同一层上C. 每个内部节点至多有m个子节点D. 每个内部节点的非叶子子节点都至少有m/2个子节点二、简答题(每题5分,共30分)1. 什么是递归?请举例说明递归算法的应用场景。
2. 请简述图的邻接矩阵和邻接表两种存储方式的优缺点。
3. 解释什么是平衡二叉树,并说明它为什么在实际应用中很重要。
数据结构与算法期末考试题及答案一、选择题1. 用于分离由加权无向边组成的完全连通图中连通分量中不相邻顶点的单纯形算法是(C)A. 最小生成树算法B. 广度优先搜索算法C. 最大流算法D. 关键路径算法2. 要设计一个使用图来表示的行业里的公司的决策问题,图的顶点应该表示(B)A. 公司拥有的资源B. 公司所面对的决策选择C. 公司内部的组织结构D. 公司的竞争对手3. 算法的计算时间复杂度O(log2n)中的n表示(A)A. 求解问题规模B. 求解算法所处理的数据量C. 求解问题中所涉及的参数量D. 求解算法所进行的求解步骤4. 以树形结构存储的优先队列中元素出队的操作时间复杂度是(C)A. O(1)B. O(n)C. O(log2n)D. O(n2)5. 以下关于贝尔曼-福特算法的描述错误的是(A)A. 贝尔曼-福特算法是求图 G=(V,E)最小生成树的法B. 贝尔曼-福特算法克服了Prim算法因存储顶点增量重复而带来的内存浪费C. 求解过程中,要维护贝尔曼-福特树中任意两个顶点之间的最短距离D. 贝尔曼-福特算法可以解决单源最短路径问题二、简答题1. 请说明拓扑排序的概念,以及如何使用拓扑排序解决求解关键路径的问题。
拓扑排序是指对有向无环图进行排序,得到一个顶点的线性序列,使得对于图中的每条有向边(u,v),均有u在v之前。
拓扑排序可用于求解关键路径,首先对所有活动按照拓扑排序的方法进行排序,计算该活动的最早开始时间ESi和最晚开始时间LSi,若ESi=LSi,则此活动运行期间不能延迟,为关键活动;若ESi≠LSi,则此活动可以合理推迟,不为关键活动。
算法与数据结构期末考试卷一、选择题(每题2分,共20分)1. 在数据结构中,线性表的顺序存储结构被称为:A. 链表B. 栈C. 队列D. 数组2. 快速排序算法的时间复杂度在最坏情况下是:A. O(n)B. O(n log n)C. O(n^2)D. O(log n)3. 哈希表解决冲突最常用的方法是:A. 链地址法B. 线性探测法C. 二次探测法D. 双重哈希法4. 二叉树的遍历方式不包括:A. 前序遍历B. 中序遍历C. 后序遍历D. 广度优先遍历5. 堆排序算法是基于:A. 链表B. 栈C. 队列D. 堆...(此处省略其他选择题)二、简答题(每题10分,共20分)1. 请简述二叉搜索树与普通二叉树的区别。
2. 什么是递归?请举例说明递归在算法中的应用。
三、编程题(每题15分,共30分)1. 编写一个函数,实现对链表的反转。
2. 编写一个函数,实现快速排序算法。
四、综合应用题(每题15分,共30分)1. 描述如何使用哈希表实现一个简单的数据库索引系统。
2. 假设你有一个数组,其中包含了一些重复的数值,请编写一个算法来找出数组中出现次数超过数组长度一半的数值。
五、论述题(每题15分,共15分)1. 论述动态规划与贪心算法的区别,并给出一个动态规划问题的例子。
六、附加题(10分,可选做)1. 请设计一个算法,用于检测一个字符串是否是回文。
如果字符串是回文,请返回True,否则返回False。
注意:本试卷中所有题目的答案必须以书面形式给出,编程题需要提供完整的代码实现。
祝各位考生考试顺利,取得优异成绩。
“数据结构”期末考试试题一、单选题(每小题2分,共12分)1.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。
A. HL=ps p一〉next=HLB. p一>next=HL;HL=p3C. p一>next=Hl;p=HL;D. p一〉next=HL一>next;HL一〉next=p;2.n个顶点的强连通图中至少含有( )。
A。
n—l条有向边 B.n条有向边C.n(n-1)/2条有向边 D。
n(n一1)条有向边3.从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( )。
A。
O(1) B.O(n)C.O(1Ogzn)D.O(n2)4.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )。
A.24 B.48C. 72 D. 535.当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。
A。
整形 B。
引用型C。
指针型 D。
常值引用型·6.向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为()。
A.O(n) B.O(1)C.O(n2) D.O(10g2n)二、填空题(每空1分,共28分)1.数据的存储结构被分为——、——、——和-—四种.2.在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为——域和——域。
3.—-中缀表达式 3十x*(2.4/5—6)所对应的后缀表达式为—-——。
4.在一棵高度为h的3叉树中,最多含有—-结点。
5.假定一棵二叉树的结点数为18,则它的最小深度为-—,最大深度为——·6.在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定-—该结点的值,右子树上所有结点的值一定-—该结点的值。
7.当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层—-调整,直到被调整到——位置为止。
试题一一、单项选择题(每小题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)14 B)5 C)6D)8(5)由权值分别为3,8,6,2的叶子生成一棵哈夫曼树,它的带权路径长度为()。
A)11 B)35 C)19 D)53 以下6-8题基于下图:(6)该二叉树结点的前序遍历的序列为()。
A)E、G、F、A、C、D、B B)E、A、G、C、F、B、DC)E、A、C、B、D、G、F D)E、G、A、C、D、F、B(7)该二叉树结点的中序遍历的序列为()。
A)A、B、C、D、E、G、F B)E、A、G、C、F、B、DC)E、A、C、B、D、G、F D)B、D、C、A、F、G、E(8)该二叉树的按层遍历的序列为()。
A)E、G、F、A、C、D、B B)E、A、C、B、D、G、FC)E、A、G、C、F、B、D D)E、G、A、C、D、F、B(9)下面关于图的存储的叙述中正确的是()。
A)用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关B)用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关C)用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关D)用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关(10)设有关键码序列(q,g,m,z,a,n,p,x,h),下面哪一个序列是从上述序列出发建堆的结果?()A)a,g,h,m,n,p,q,x,z B)a,g,m,h,q,n,p,x,zC)g,m,q,a,n,p,x,h,z D)h,g,m,p,a,n,q,x,z二、(本题8分)对于序列{8,18,6,16,29,28},试写出堆顶元素最小的初始堆。
数据结构期末考试题及答案一、单项选择题(每题2分,共20分)1. 在数据结构中,算法的时间复杂度是指()。
A. 算法程序的长度B. 算法执行时所需要的基本运算次数C. 算法程序中的语句数D. 算法程序中的指令数答案:B2. 线性表的顺序存储结构和链式存储结构相比,其主要优点是()。
A. 插入和删除操作快B. 存储密度高C. 存储空间可以动态申请D. 存储空间可以预先分配答案:D3. 在一个长度为n的顺序表中,采用二分查找法查找第k小的元素,最坏情况下需要比较的次数是()。
A. nB. n/2C. log2(n+1)D. log2n答案:D4. 一个栈的入栈序列为1, 2, 3, 4, 5,下列序列中哪一个不可能是栈的输出序列()。
A. 5, 4, 3, 2, 1B. 3, 2, 4, 1, 5C. 5, 4, 2, 3, 1D. 1, 2, 5, 3, 4答案:D5. 在二叉树的前序遍历、中序遍历和后序遍历中,根节点总是()。
A. 第一个被访问B. 第二个被访问C. 第三个被访问D. 最后一个被访问答案:A6. 在一个有n个顶点的无向图中,其边的最大数量是()。
A. n(n-1)/2B. n(n+1)/2C. n^2D. 2n答案:A7. 哈夫曼编码是一种()。
A. 静态编码B. 动态编码C. 无损编码D. 有损编码答案:C8. 一个图的邻接矩阵表示法中,若顶点i到顶点j有一条边,则矩阵的第i行第j列的元素为()。
A. 1B. 0C. 边的权重D. 顶点j的度数答案:C9. 在数据库中,关系模式R(U, F),其中U={A, B, C, D},F={(A, B)→C, C→D},下列哪个关系模式是R的候选键()。
A. {A, B}B. {A, C}C. {B, C}D. {C, D}答案:A10. 快速排序算法的平均时间复杂度是()。
A. O(n^2)B. O(nlogn)C. O(n^3)D. O(n)答案:B二、填空题(每题2分,共20分)1. 在数据结构中,递归算法的时间复杂度通常可以用______来描述。
数据结构与算法题库(含参考答案)一、单选题(共100题,每题1分,共100分)1、在一次校园活动中拍摄了很多数码照片,现需将这些照片整理到一个PowerPoint 演示文稿中,快速制作的最优操作方法是:A、创建一个 PowerPoint 相册文件。
B、创建一个 PowerPoint 演示文稿,然后批量插入图片。
C、创建一个 PowerPoint 演示文稿,然后在每页幻灯片中插入图片。
D、在文件夹中选中所有照片,然后单击鼠标右键直接发送到PowerPoint 演示文稿中。
正确答案:A2、下面对“对象”概念描述错误的是A、对象不具有封装性B、对象是属性和方法的封装体C、对象间的通信是靠消息传递D、一个对象是其对应类的实例正确答案:A3、设栈与队列初始状态为空。
首先A,B,C,D,E依次入栈,再F,G,H,I,J 依次入队;然后依次出队至队空,再依次出栈至栈空。
则输出序列为A、F,G,H,I,J,E,D,C,B,AB、E,D,C,B,A,J,I,H,G,FC、F,G,H,I,J,A,B,C,D,E,D、E,D,C,B,A,F,G,H,I,J正确答案:A4、设表的长度为 20。
则在最坏情况下,冒泡排序的比较次数为A、20B、19C、90D、190正确答案:D5、设二叉树的前序序列为 ABDEGHCFIJ,中序序列为 DBGEHACIFJ。
则后序序列为A、DGHEBIJFCAB、JIHGFEDCBAC、GHIJDEFBCAD、ABCDEFGHIJ正确答案:A6、Excel工作表B列保存了11位手机号码信息,为了保护个人隐私,需将手机号码的后 4 位均用“*”表示,以 B2 单元格为例,最优的操作方法是:A、=REPLACE(B2,7,4,"****")B、=REPLACE(B2,8,4,"****")C、=MID(B2,7,4,"****")D、=MID(B2,8,4,"****")第 10 组正确答案:B7、小金从网站上查到了最近一次全国人口普查的数据表格,他准备将这份表格中的数据引用到 Excel 中以便进一步分析,最优的操作方法是:A、通过 Excel 中的“自网站获取外部数据”功能,直接将网页上的表格导入到 Excel 工作表中。
三、程序填空题(本题共、链式表表示和实现线性表的部分程序如下,请在程序空白处填上适当的语句://线性表的单链表存储结构typedef struct LNode{线 订 装数据结构与算法A卷答案一、选择题:(本题共20小题,每题2分,共40分)1-5:CA、DBCC 6-10:BDDAB 11-15:AABBA 16-20:CCCBC二、分析运算题(本题共5小题,每题6分,共30 分)1、解答:(1)选链式存储结构。
它可以动态申请内存空间,不受表长度(即表中元素个数)的影响,插入、删除的时间复杂性为O(1);(2)选顺序存储结构。
顺序表可以随机存取,时间复杂性为O(1)。
2.CBADECBAEDCBEDACBDAECBDEA每对一个得1分,全对得6分,写错一个倒扣1分。
3.(3分)先序遍历序列:+-A/×BCD/EF (3分)4.(3分)后序遍历序列为:BHECIGFA D (3分)(1)(2分)(2)(2分)(3)(2分)三、程序填空题(本题共10空,每空2分,共20分)(1)p = L(2)p->next(3)p->next=q->next(4)free(q)(5)NULL或=NULL(6)printf(“%c”,BT->data)(7)Inorder(BT->right)(8) Push(S, exp[i]) 或 Push(S,‘(’)(9) GetTop(S)= ='('(10) Pop(S,e)四、算法设计题(本题共1小题,共10分)1、(10分)算法如下:答:void quickpass(sqlist r){int i=0; j=r.length-1; x=r.elem[0];while(i<j){while(i<j && r.elem[j]>x) j=j-1;if(i<j){r.elem[i]=r.elem[j];i=i+1;} while(i<j && r.elem[i]<x) i=i+1;if(i<j){r.elem[j]=r.elem[i];j=j-1;} }r.elem[i]=x;}。
数据结构期末考试试题及答案一、选择题1. 以下哪种数据结构是线性存储结构?A. 树B. 图C. 链表D. 哈希表答案:C2. 在二叉搜索树中,若删除一个节点,则需要进行以下哪些操作?A. 仅删除操作B. 删除操作和调整树结构操作C. 插入操作D. 忽略操作答案:B3. 快速排序算法的时间复杂度在最坏情况下是:A. O(log n)B. O(n)C. O(n log n)D. O(n^2)答案:D4. 下面哪个排序算法适用于大数据量的排序?A. 冒泡排序B. 快速排序C. 插入排序D. 归并排序答案:D5. 哈夫曼树是一种特殊的:A. 二叉树B. 多叉树C. 哈希表D. 图答案:A二、填空题1. 链表的基本操作包括__________、__________、__________和__________。
答案:创建、插入、删除、查找2. 栈是一种后进先出(LIFO)的数据结构,其添加元素的操作称为__________,移除元素的操作称为__________。
答案:push、pop3. 在图的遍历算法中,按照遍历方向的不同,可以分为__________和__________。
答案:深度优先遍历、广度优先遍历4. 红黑树是一种自平衡的__________。
答案:二叉搜索树4. 散列表(哈希表)的主要优点是__________。
答案:查找速度快三、简答题1. 请简述数组和链表的区别及各自的优缺点。
答案:数组是一种顺序存储结构,通过索引直接访问元素,访问速度快,但是插入和删除操作需要移动大量元素,效率较低。
链表是一种非顺序存储结构,通过指针连接元素,插入和删除操作只需要改变指针,效率较高,但是访问元素需要从头开始遍历,速度较慢。
2. 请解释二分查找法的工作原理及其适用条件。
答案:二分查找法是一种在有序数组中查找特定元素的算法。
工作原理是将数组分为两部分,判断目标值与中间元素的大小关系,然后在相应的一半中继续查找,重复此过程,直到找到目标值或范围缩小到无法再分。
数据结构期末考试试题(含答案)数据结构期末考试试题(含答案)第一题:多项式相加(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)。
数据结构与算法练习题库(含答案)一、单选题(共80题,每题1分,共80分)1、对一棵二叉树的结点从 1 开始顺序编号。
要求每个结点的编号大于其左子树所有结点的编号、但小于右子树中所有结点的编号。
可采用▁▁▁▁▁ 实现编号。
A、中序遍历B、先序遍历C、层次遍历D、后序遍历正确答案:A2、设一段文本中包含4个对象{a,b,c,d},其出现次数相应为{4,2,5,1},则该段文本的哈夫曼编码比采用等长方式的编码节省了多少位数?A、5B、4C、2D、0正确答案:C3、两个有相同键值的元素具有不同的散列地址A、一定不会B、一定会C、可能会D、有万分之一的可能会正确答案:C4、将元素序列{18,23,11,20,2,7,27,33,42,15}按顺序插入一个初始为空的、大小为11的散列表中。
散列函数为:H(Key)=Key%11,采用线性探测法处理冲突。
问:当第一次发现有冲突时,散列表的装填因子大约是多少?A、0.73B、0.27C、0.64D、0.45正确答案:D5、对N个记录进行归并排序,归并趟数的数量级是:A、O(NlogN)B、O(logN)C、O(N)D、O(N2)正确答案:B6、下列说法不正确的是:A、图的遍历是从给定的源点出发每一个顶点仅被访问一次B、图的深度遍历不适用于有向图C、遍历的基本算法有两种:深度遍历和广度遍历D、图的深度遍历是一个递归过程正确答案:B7、二叉树的中序遍历也可以循环地完成。
给定循环中堆栈的操作序列如下(其中push为入栈,pop为出栈): push(1), push(2), push(3), pop(), push(4), pop(), pop(), push(5), pop(), pop(), push(6), pop()A、6是根结点B、2是4的父结点C、2和6是兄弟结点D、以上全不对正确答案:C8、设最小堆(小根堆)的层序遍历结果为{1, 3, 2, 5, 4, 7, 6}。
《数据结构与算法》期末练习一选择题1.以下与数据的存储结构无关的术语是( D )。
A.循环队列 B. 链表 C. 哈希表 D. 栈2. 算法的时间复杂度取决于( A )A.问题的规模 B. 待处理数据的初态 C. A和B D. 计算机cpu3. 一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是( B )。
A. 2 3 4 1 5B. 5 4 1 3 2C. 2 3 1 4 5D. 1 5 4 3 24. 有关静态链表的叙述:(1) 静态链表既有顺序存储的优点,又有动态链表的优点。
所以,它存取表中第i个元素的时间与i无关。
(2) 静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。
(3) 静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。
以上错误的是( B )A.(1),(2) B.(1) C.(1),(2),(3) D.(2)5.对于有n 个结点的二叉树, 其高度为( D )A.nlog2n B.log2n C.⎣log2n⎦|+1 D.不确定6.从下列有关树的叙述中,选出正确的叙述( C )A.二叉树中每个结点有两个子结点,而树无此限制,因此二叉树是树的特殊情况。
B.当K≥1时高度为K的二叉树至多有2k-1个结点。
C.哈夫曼树是带权路径最短的树,路径上权值较大的结点离根较近。
D.在二叉树中插入结点,该二叉树便不再是二叉树。
7.设无向图的顶点个数为n,则该图最多有( B )条边。
A.n-1 B.n(n-1)/2 C. n(n+1)/2 D.0 E.n28.已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7},E={<V1,V2>, <V1,V3>, <V1,V4>, <V2,V5>, <V3,V5>, <V3,V6>, <V4,V6>, <V5,V7>, <V6,V7>},G的拓扑序列是( A )。
1、下面关于算法的说法错误的是()A、算法最终必须由计算机程序实现B、为解决某问题的算法同为该问题编写的程序含义是相同的C、算法的可行性是指指令不能有二义性D、以上几个都是错误的参考答案:D2、数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称为()A、存储结构B、逻辑结构C、链式存储结构D、顺序存储结构参考答案:C3、以下说法正确的是()(2分)A、数据元素是数据的最小单位B、数据项是数据的基本单位C、数据结构是带有结构的各数据项的集合D、数据结构是带有结构的数据元素的集合参考答案:D4、通常从正确性、易读性、健壮性、高效性等四个方面评价算法(包括程序)的质量。
以下解释错误的是()A、正确性算法应能正确地实现预定的功能(即处理要求)B、易读性算法应易于理解和阅读,以便于调试、修改和扩充C、健壮性当环境发生变化时,算法能适当地做出反应或进行处理,不会产生不需要的运行结果D、高效性即达到所需要的时间性能参考答案:C5、树形结构是数据元素之间存在一种()A、一对一关系B、多对多关系C、多对一关系D、一对多关系参考答案:D6、数据结构是指()A、数据元素的组织形式B、数据类型C、数据存储结构D、数据定义参考答案:A7、算法分析的目的是()A、找出数据结构的合理性3、研究算法中的输入和输出关系C、分析算法的效率以求改进D、分析算法的易懂性和文档性参考答案:C8、数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要()A、低B、高C、相同D、以上都不正确参考答案:B9、算法的空间复杂度是指()A、执行算法程序所占的存储空间B、算法程序中的指令条数C、算法程序的长度D、算法执行过程中所需要的存储空间参考答案:D10、数据的存储结构是指()A、数据所占的存储空间量B、数据的逻辑结构在计算机中的表示C、数据在计算机中的顺序存储方式D、存数在外存中的数据参考答案:B11、线性表是()A、一个有限序列,可以为空B、一个有限序列,不能为空C、一个无限序列,可以为空D、一个无限序列,不能为空参考答案:A12、下列叙述正确的是()A、线性表是线性结构B、栈和队列是非线性结构C、线性链表是非线性结构D、二叉树是线性结构参考答案:A13、计算机内部数据处理的基本单位是()A、数据B、数据元素C、数据项D、数据库参考答案:B14、从逻辑上可以把数据结构分为()两大类A、动态结构、静态结构B、顺序结构、链式结构C、线性结构、非线性结构D、初等结构、构造型结构参考答案:C15、算法的时间复杂度取决于()A、问题的规模B、待处理数据的初态C、A 和B参考答案:C16、以下属于逻辑结构的是()(2分)A、顺序表B、哈希表C、有序表D、单链表参考答案:C17、下列数据结构中,()是非线性数据结构A、树B、字符串C、队D、栈参考答案:A18、设语句x++的时间是单位时间,则以下语句的时间复杂度为()for(i=1;i<=n;i++)for(j=|;j<=n;j++)x++;(2分)A、O(1)B、O(n2)C、O(n)D、O(n3)参考答案:B19、算法的计算量大小称为计算的()(2分)A、效率B、复杂性C、现实性D、难度参考答案:B20、数据结构只是研究数据的逻辑结构和物理结构,这种观点()A、正确B、错误C、前半句正确,后半句错误D、前半句错误,后半句正确参考答案:B21、计算机算法指的是(),它具有输入、输出、可行性、确定性和有穷性等五个特性。
2023 年河北工程大学计算机科学与技术专业《数据构造与算法》科目期末试卷A〔有答案〕一、选择题1、用有向无环图描述表达式(A+B)*((A+B)//A),至少需要顶点的数目为〔〕。
A.5B.6C.8D.92、将两个各有N 个元素的有序表归并成一个有序表,其最少的比较次数是〔〕。
A.NB.2N-1C.2ND.N-13、单链表中,增加一个头结点是为了〔〕。
A.使单链表至少有一个结点B. 标识表结点中首结点的位置C.便利运算的实现D. 说明单链表是线性表的链式存储4、循环队列A[0..m-1]存放其元素值,用front 和rear 分别表示队头和队尾,则当前队列中的元素数是〔〕。
A.〔rear-front+m〕%mB.rear-front+1C.rear-front-1D.rear-front5、在以下表述中,正确的选项是〔〕A.含有一个或多个空格字符的串称为空格串B.对n〔n>0〕个顶点的网,求出权最小的n-1 条边便可构成其最小生成树C.选择排序算法是不稳定的D.平衡二叉树的左右子树的结点数之差确实定值不超过l6、关键字序列5,8,12,19,28,20,15,22 是小根堆〔最小堆〕,插入关键字3,调整后的小根堆是〔〕。
A.3,5,12,8,28,20,15,22,19 B.3,5,12,19,20,15,22,8,282 2 C .3,8,12,5,20,15,22,28,19 D .3,12,5,8,28,20,15,22,197、假设一棵二叉树的前序遍历序列为 a ,e ,b ,d ,c ,后序遍历序列为 b ,c ,d ,e ,a , 则根结点的孩子结点〔 〕。
A .只有 eB .有e 、bC .有e 、cD .无法确定8、在下述结论中,正确的有〔 〕。
①只有一个结点的二叉树的度为 0。
②二叉树的度为 2。
③二叉树的左右子树可任意交换。
④深度为 K 的完全二叉树的结点个数小于或等于深度一样的满二叉树。
单选题(每题 2 分,共20分)1.对一个算法的评价,不包括如下(B )方面的内容。
A.健壮性和可读性B.并行性C.正确性D.时空复杂度2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行( A )。
A. p->next=HL->next; HL->next=p;B. p->next=HL; HL=p;C. p->next=HL; p=HL;D. HL=p; p->next=HL;3.对线性表,在下列哪种情况下应当采用链表表示?( B )A.经常需要随机地存取元素B.经常需要进行插入和删除操作C.表中元素需要占据一片连续的存储空间D.表中元素的个数不变4.一个栈的输入序列为 1 2 3,则下列序列中不可能是栈的输出序列的是( C )A. 2 3 1B. 3 2 1C. 3 1 2D. 1 2 36.若需要利用形参直接访问实参时,应将形参变量说明为(D )参数。
A.值B.函数C.指针D.引用8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的( A )。
A.行号B.列号C.元素值D.非零元素个数10.从二叉搜索树中查找一个元素时,其时间复杂度大致为(C )。
A. O(n)B. O(1)C. O(log2n)D. O(n2)二、运算题(每题 6 分,共24分)1.数据结构是指数据及其相互之间的_联系。
当结点之间存在M对N(M:N)的联系时,称这种结构为__图__。
2.队列的插入操作是在队列的___尾_进行,删除操作是在队列的_首_进行。
3.当用长度为N的数组顺序存储一个栈时,假定用top==N表示栈空,则表示栈满的条件是___top==0___(要超出才为满)_______________。
4.对于一个长度为n的单链存储的线性表,在表头插入元素的时间复杂度为___O(1)__,在表尾插入元素的时间复杂度为___ O(n)___。
《数据结构与算法》期末练习一选择题1.以下与数据的存储结构无关的术语是( D )。
A.循环队列 B. 链表 C. 哈希表 D. 栈2. 算法的时间复杂度取决于( A )A.问题的规模 B. 待处理数据的初态 C. A和B D. 计算机cpu3. 一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是( B )。
A. 2 3 4 1 5B. 5 4 1 3 2C. 2 3 1 4 5D. 1 5 4 3 24. 有关静态链表的叙述:(1) 静态链表既有顺序存储的优点,又有动态链表的优点。
所以,它存取表中第i个元素的时间与i无关。
(2) 静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。
(3) 静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。
以上错误的是( B )A.(1),(2) B.(1) C.(1),(2),(3) D.(2)5.对于有n 个结点的二叉树, 其高度为( D )A.nlog2n B.log2n C.⎣log2n⎦|+1 D.不确定6.从下列有关树的叙述中,选出正确的叙述( C )A.二叉树中每个结点有两个子结点,而树无此限制,因此二叉树是树的特殊情况。
B.当K≥1时高度为K的二叉树至多有2k-1个结点。
C.哈夫曼树是带权路径最短的树,路径上权值较大的结点离根较近。
D.在二叉树中插入结点,该二叉树便不再是二叉树。
7.设无向图的顶点个数为n,则该图最多有( B )条边。
A.n-1 B.n(n-1)/2 C. n(n+1)/2 D.0 E.n28.已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7},E={<V1,V2>, <V1,V3>, <V1,V4>, <V2,V5>, <V3,V5>, <V3,V6>, <V4,V6>, <V5,V7>, <V6,V7>},G的拓扑序列是( A )。
A.V1,V3,V4,V6,V2,V5,V7 B.V1,V3,V2,V6,V4,V5,V7C.V1,V3,V4,V5,V2,V6,V7 D.V1,V2,V5,V3,V4,V6,V79.下列排序算法中,其中( D )是稳定的。
A. 堆排序,冒泡排序B. 快速排序,堆排序C. 希尔排序,归并排序D. 归并排序,冒泡排序10.对一组数据(84,47,25,15,21)排序,数据的排列次序在排序的过程中的变化为(1) 84 47 25 15 21 (2) 15 47 25 84 21 (3) 15 21 25 84 47 (4) 15 21 25 47 8411. 则采用的排序是 ( A )。
A. 选择B. 冒泡C. 快速D. 插入12.以下数据结构中,哪一个是线性结构( D )?A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串13.下面关于线性表的叙述中,错误的是哪一个?( B )A.线性表采用顺序存储,必须占用一片连续的存储单元。
B.线性表采用顺序存储,便于进行插入和删除操作。
C.线性表采用链接存储,不必占用一片连续的存储单元。
D.线性表采用链接存储,便于插入和删除操作。
14. 设一个栈的输入序列是 1,2,3,4,5,则下列序列中,是栈的合法输出序列的是( D )。
A. 5 1 2 3 4B. 4 5 1 3 2C. 4 3 1 2 5D. 3 2 1 5 415. 设n为正整数.下列程序段中前置以@的语句的频度为( B )。
i = 1; k = 0;do{@ k+= 10*i;i++;}While(i <= n-1);A. n – 1B. nC. n + 1D. n - 216. 一棵具有 n个结点的完全二叉树的树高度(深度)是( A )A.⎣logn⎦+1 B.logn+1 C.⎣logn⎦ D.logn-117.一个栈的输入序列为123…n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是( B )。
A. 不确定B. n-i+1C. iD. n-i18.n个结点的完全有向图含有边的数目( D )。
A.n*n B.n(n+1) C.n/2 D.n*(n-l)19.稳定的排序方法是( B )A.直接插入排序和快速排序 B.折半插入排序和起泡排序C.希尔排序和四路归并排序 D.树形选择排序和shell排序20.有一组数据(15,9,7,8,20,-1,7,4)用快速排序的划分方法进行一趟划分后数据的排序为 ( A )(按递增序)。
A.下面的B,C,D都不对。
B.9,7,8,4,-1,7,15,20C.20,15,8,9,7,-1,4,7 D. 9,4,7,8,7,-1,15,2021.以下那一个术语与数据的存储结构无关?( A )A.栈 B. 哈希表 C. 线索树 D. 双向链表22.下面关于串的的叙述中,哪一个是不正确的?( B )A.串是字符的有限序列 B.空串是由空格构成的串C.模式匹配是串的一种重要运算 D.串既可以采用顺序存储,也可以采用链式存储23. 某堆栈的输入序列为a, b,c ,d,下面的四个序列中,不可能是它的输出序列的是( D )。
A. a,c,b,dB. b, c,d,aC. c, d,b, aD. d, c,a,b24. 关于二叉树的叙述:①只有一个结点的二叉树的度为0; ②二叉树的度为2;③二叉树的左右子树可任意交换;④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。
正确的是( D )A.①②③ B.②③④ C.②④ D.①④25.高度为 K的二叉树最大的结点数为( C )。
A.2k B.2k-1 C.2k -1 D.2k-1-126.从下列有关树的叙述中,选出正确的叙述( C )A.二叉树中每个结点有两个子结点,而树无此限制,因此二叉树是树的特殊情况。
B.当K≥1时高度为K的二叉树至多有2k-1个结点。
C.用树的前序遍历和中序遍历可以导出树的后序遍历。
D.哈夫曼树是带权路径最长的树,路径上权值较大的结点离根较近。
27. 关键路径是事件结点网络中( A )。
A.从源点到汇点的最长路径 B.从源点到汇点的最短路径C.最长回路 D.最短回路28.用DFS遍历一个无环有向图,并在DFS算法退栈返回时打印相应的顶点,则输出的顶点序列是( A )。
A.逆拓扑有序 B.拓扑有序 C.无序的29.一组记录的关键码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为( C )。
A.(38,40,46,56,79,84) B. (40,38,46,79,56,84)C.(40,38,46,56,79,84) D. (40,38,46,84,56,79)30. 一个向量的第一个元素的地址是begin,每个元素的长度是k ,则第i个元素的地址是( D )A. begin+(k-1)iB. begin+(k-2)iC. begin+kiD. begin+(i-1)k31. 有一个有序表为{ 1,3,9,12,32,41,45,62,77,88,92,100},用折半查找法,若要找63,要经过( C )次与63比较。
A. 12B. 6C. 4D. 532. 一个序列的初始状态为(46,77,82,53,31,70),今对其进行冒泡排序,当进行两趟冒泡后,序列中的元素排列为( D )。
A.(31,46,70,53,77,82)B.(46,77,53,31,70,82)C.(46,31, 82,53,77,70)D. (46 ,53,31,70,77,82)33. 将一个长度为n的向量的第i 个元素删除时,需要前移( B )个元素。
A. iB. n-iC. n+1D. n-i+134. 不带表头的单链表,头指针为head ,判断其是否为空的条件是( A )A. head==0B. head->next==nullC. head==headD. head->next==head35. 在一个单链表中,已知*q是(*q表示指针q所指的结点,以下同)*p的前驱结点,在*q之后插入结点*s,正确的操作步骤序列是( A )。
A) q->next=s; s->next =p B) s->next=p->next; q->next=s;C) p->nexr=s; s->next=p ; D) p->next=s; s->next=q;36. 非空循环链表head 的尾结点 *p 满足下列( C )条件A) head->next==p; B) head==p; C) p->next==head; D) p->next==037. 一个栈的输入序列是a,b,c,d,e ,则可能的出栈序列是( D )。
A. ecdab B) cebda C) daecb D) abcde38. 设栈s的类型为sqstack ,判定栈空的条件是( C )。
A. s==NULL B) s->top==0 C) s.top==0 D) s.top==NULL39. 深度为5 的二叉树至多有个( B )结点。
A. 12B. 31C. 14D. 1540. 已知二叉树的后、中根序列分别是bedfca 和 badecf,则该二叉树的前根遍历序列是( C )。
A) defbca B) fedbca C) abcdef D) fedcba41. 一个有n个顶点的有向图最多有( B )弧。
A) n(n+1) B) n(n-1) C) n(n+1)/2 D) n(n-1)/242. 具有n个顶点的无向图至少要有( B )条边才有可能是一个连通图。
A) n(n+1) B) n-1 C) n+1 D) n(n-1)43. 已知有向图的正邻接链表的存储结构如下,从顶点1出发的按深度优先遍历序列是( B )。
A) 1 2 3 4 B) 1 4 2 3 C) 1 3 2 4 D) 1 4 3 244. 一个向量的第一个元素的地址是100,每个元素的长度是 2 ,则第五个元素的地址是( C )A) 102 B) 110 C) 108 D) 12045. 一个循环顺序队列 ,队头、尾指针的值分别为front,rear ,则队列中元素个数为( A )。
(maxlen 为循环顺序表的长度)A. (rear-front+maxlen) % maxlenB. (rear-front) % maxlenC. rear-front+1D. front-rear+146. 一个有n 个顶点的图最少有( D )条边。