数据结构(本)期末综合练习
数据结构(本)期末综合练习

数据结构(本)期末综合练习期末综合练习一一、单项选择题1.数据的物理结构( D)。
A.与数据的逻辑结构无关 B.仅仅包括数据元素的表示C.只包括数据元素间关系的表示 D.包括数据元素的表示和关系的表示2.数据元素是数据的基本单位,它(C )。
A.只能有一个数据项组成B.至少有二个数据项组成C.可以是一个数据项也可以由若干个数据项组成D.至少有一个数据项为指针类型3.从n个数中选取最大元素,( C )。
A.基本操作是数据元素间的交换B.算法的时间复杂度是O(n2)C.算法的时间复杂度是O(n) D.需要进行(n+1)次数据元素间的比较4.线性表的顺序结构中,( C )。
A.逻辑上相邻的元素在物理位置上不一定相邻B.数据元素是不能随机访问的C.逻辑上相邻的元素在物理位置上也相邻D.进行数据元素的插入、删除效率较高5.以下表中可以随机访问的是( D )。
A.单向链表 B.双向链表C.单向循环链表D.顺序表6.带头结点的单向链表为空的判断条件是( B )(设头指针为head)。
A.head = =NULL B.head->next= =NULLC.head->next= =head D.head!=NULL7 .设顺序存储的线性表长度为n,对于删除操作,设删除位置是等概率的,则删除一个元素平均移动元素的次数为( A )。
A.(n+1)/2 B.n C.2n D.n-i8.线性结构中数据元素的位置之间存在(A )的关系。
A.一对一B.一对多C.多对多D.每一个元素都有一个直接前驱和一个直接后继9.设top是一个链栈的栈顶指针,栈中每个结点由一个数据域data和指针域next组成,设用x接收栈顶元素,则出栈操作为(A )。
A.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 )时,移动元素的次数为3 A.3 B.n/2 C.n-3 D.411.以下说法正确的是( C )。
数据结构(专升本)期末考试

武汉轻工大学继续教育学习平台数据结构(专升本)期末考试课程名称:数据结构(专升本)1.(单选题) 若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不可能出现的出栈序列是( )。
(本题2.5分)A. 2,4,3,1,5,6B. 3,2,4,1,6,5C. 4,3,2,1,5,6D. 2,3,5,1,6,4答案:D.解析:无.2.(单选题) 一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是( ) 。
(本题2.5分)A. edcbaB. decbaC. dceabD. abcde答案:C.解析:无.3.(单选题)一个队列的入队序列为1234,则出队序列是( )。
(本题2.5分)A.4321B.1234C.1432D.3241答案:B.解析:无.4.(单选题) 若已知一个栈的入栈序列是1,2,3,4……n,其输出序列为p1,p2,p3,……pn,若p1= =n,则pi为( )。
(本题2.5分)A. iB. n= =iC. n-i+1D. 不确定答案:C.解析:无.5.(单选题)栈和队列的共同点是【】。
(本题2.5分)A.都是先进先出B.都是后进后出C.只允许在端点处进行插入和删除D.无共同点答案:C.解析:无.6.(单选题)引起循环队列队头位置发生变化的操作是( )。
(本题2.5分)A.出队B.入队C.取队头元素D.取队尾元素答案:A.解析:无.7.(单选题) 一个递归的定义可以用递归过程求解,也可以用非递归过程求解,但单从运行时间来看,通常递归过程比非递归过程( )。
(本题2.5分)A. 较快B. 较慢C. 相同D. 不定答案:B.解析:无.8.(单选题) 对于栈操作数据的原则是( )。
(本题2.5分)A. 先进先出B. 后进先出C. 后进后出D. 不分顺序答案:B.解析:无.9.(单选题)设单链表中指针p指着结点A,要删除A之后的结点(若存在),则需修改指针的操作为( )。
大数据结构(本)期末综合练习

数据结构(本)期末综合练习综合练习一一、单项选择题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个结点,则该树总共有()个结点。
数据结构(本科)期末综合练习二(填空与判断题)

55. 广义表是一种递归的数据结构,子表结点则指示下一层广义表的________。
56. 广义表的深度定义为广义表括号的________。
57. 对于一棵具有n个结点的树,该树中所有结点的度数之和为______。
58. 一棵树的广义表表示为a(b(c,d(e,f),g(h)),i(j,k(x,y))),结点k的所有祖先的结点数为________个。
42. 若设顺序栈的最大容量为MaxSize,top==-1表示栈空,则判断栈满的条件是________________。
43. 当用长度为MaxSize的数组顺序存储一个栈时,若用top == MaxSize表示栈空,则表示栈满的条件为________。
44. 向一个循环队列中插入元素时,需要首先移动________指针,然后再向所指位置写入新元素。
48. 如果一个对象部分地包含自己,或自己定义自己,则称这个对象是_________的对象。
49. 如果一个过程直接或间接地调用自己,则称这个过程是一个________的过程。
保持青春的秘诀,是有一颗不安分的心。
50. 递归工作栈起到两个作用,其一是将递归调用时的实际参数和返回地址传递给下一层递归;其二是保存本层的形式参数和_________。
16. 二维数组是一种非线性结构,其中的每一个数组元素最多有_________个直接前驱(或直接后继)。
17. 若设一个n?n的矩阵A的开始存储地址LOC(0, 0) 及元素所占存储单元数d已知,按行存储时其任意一个矩阵元素a[i][j]的存储地址为_________。
18. 对称矩阵的行数与列数_________且以主对角线为对称轴,aij = aji,因此只存储它的上三角部分或下三角部分即可。
数据结构(本科)期末综合练习四(算法分析题)

数据结构(本)期末综合练习

数据结构(本)期末综合练习综合练习一一、单项选择题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个结点,则该树总共有()个结点。
华东理工大学数据结构(本)期末复习题及参考答案

数据结构(本)(网教)202301-模拟卷注:找到所考试题直接看该试题所有题目和答案即可。
查找按键:Ctrl+F超越高度一、单选题(共10题,20分)1、设循环队列中数组的下标范围是l~n,其头尾指针分别尾f、r,则队列中元素的个数为().A、r-fB、r-f+1C、(r-f+1)modnD、(r-f+n)modn正确答案:D2、以下哪一个不是队列的基本运算?A、从队尾插入一个新元素B、从队列中删除第i个元素C、判断一个队列是否为空D、读取队头元素的值正确答案:B3、有一个有序表{1,3,9,12,32,41,62,75,77,86,95,100),当二分查找值为86的关键字时,需要比较的次数是()。
A、2B、3C、4D、5正确答案:C4、栈S最多能容纳4个元索。
现有6个元索按A、B、C、D、E、F的顺序进栈,问下列哪一个序列是可能的出栈序列?Λ.E、D、C、B、A、FB.B、C、E、F、A、DC.C、B、E、D、A、FD.A、D、F、E、B、C正确答案:C5、n个顶点的无向连通图至少有()条边。
A、n-1B、nC、n+1D、2n正确答案:A6、设有IOOOO个无序元索,希望用较快速度挑选出其中前15个最大元素,采用()方法最好.A、直接插入排序B、堆排序C、快速排序D、归并排序正确答案:B7、已知一棵二叉排序树,通过()可以得到结点的有序序列。
A、前序遍历B、中序遍历C、后序遍历D、线索化正确答案:B8、S="A;/document/Mary.doc",则的字符定位的位置为().A、2B、3C、12D、11正确答案:B9、假设有60行70列的二维数组a[b∙∙60,1…70]以列序为主序顺序存储,其基地址为10000,每个元索占2个存储单元,那么第32行第58列的元素a[32,58]的存储地址为()。
(无第。
行第0列元素)A、16902B、16904C、14454D、答案A,B,C均不对正确答案:A10、具有36个结点的完全二叉树的深度为()。
数据结构(本科)期末综合练习五(算法设计题)

数据结构(本科)期末综合练习五(算法设计题)1. 设有一个线性表 (e0, e1, …, e n-2, e n-1) 存放在一个一维数组A[arraySize]中的前n个数组元素位置。
请编写一个函数将这个线性表原地逆置,即将数组的前n个元素内容置换为 (e n-1, e n-2, …, e1, e0)。
函数的原型为:template<class Type>void inverse ( Type A[ ], int n );2. 试编写一个函数,在一个顺序表A中找出具有最大值和最小值的整数。
函数的原型如下所示,原型的参数表中给出顺序表对象为A,通过算法执行,从参数表中的引用参数Max中得到表中的最大整数,Min中得到表中的最小整数。
注意,函数中可使用顺序表的两个公有函数:Length( ) 求表的长度;getData(int k) 提取第k个元素的值。
#include “SeqList.h”template <class T> void FindMaxMin ( SeqList<int>& A, int& Max, int& Min );3. 设有两个整数类型的顺序表A(有 m个元素)和B(有n个元素),其元素均以升序排列。
试编写一个函数,将这两个顺序表合并成一个顺序表C,要求C的元素也以升序排列(表中允许元素重复)。
函数的原型如下所示。
原型中的参数表给出参加运算的三个顺序表A、B与C。
从C中得到执行结果。
函数中用到顺序表的4个公有函数:Length( ) 求表的当前长度;maxLength( ) 求表的最大允许长度;getData(int k) 提取第k个元素的值;setData(int k, int val) 修改第k个元素的值为val。
template<class T>void merge(SeqList<int>& A, SeqList<int>& B, SeqList<int>& C);4. 编写一个函数frequency,统计在一个输入字符串中各个不同字符出现的频度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构(本)期末综合练习综合练习一一、单项选择题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个结点,则该树总共有()个结点。
A.14 B.15 C.19 D.1811.元素15,9,11,13按顺序依次进栈,则该栈的不可能输出序列是()(进栈出栈可以交替进行)。
A.13,11,9,15 B.15,9,11,13C.13,11,15,9 D.9,15,13,1112.设主串为“FABcCDABcdEFaBc”,以下模式串能与主串成功匹配的是()。
A. EFaBcB. ABCdEC. DABCC D .FAbcC13.设有一个14阶的对称矩阵A(第一个元素为a1,1),采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a4,3在一维数组B中的下标是()。
A.9 B.10 C.11 D.814.元素111,113,115,117按顺序依次进栈,则该栈的不可能输出序列是()(进栈出栈可以交替进行)。
A.117,115,113,111 B.111,113,115,117C.113,111,117,115 D.117,115,111,11315.在一棵二叉树中,若编号为8的结点存在右孩子,则右孩子的顺序编号为()。
A.18 B.16 C.15 D.1716.以下说法不正确的是()。
A.栈和队列都是线性结构B.栈的特点是后进先出C. 栈和队列的特点都是先进后出D.队列的特点是先进先出17.设一棵哈夫曼树共有14个非叶结点,则该树总共有()个结点。
A.29 B.27 C.30 D.2818.设有一个15阶的对称矩阵A(第一个元素为a1,1),采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a4,2 在一维数组B中的下标是()。
A.9 B.8 C.7 D.1019.如图1所示的一个图,若从顶点a出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为()。
A.abecdf B.acfebd C.aebcfd D.aedbfc图120.如图2所示的一个图,若从顶点a出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为()。
A.acedbf B.acebfd C.aebcfd D.aedfcb二、填空题1. 队列的特点之一是:元素进、出队的次序是:先进_______。
2. 序列13,11,14,12,17,15,采用冒泡排序算法,经一趟冒泡后,序列的结果是________。
3.________结构中,数据元素间存在一对多的关系。
4. 对16个元素的序列用冒泡排法进行排序,通常需要进行________趟冒泡。
5.对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的三项信息是____ ___。
6. 对9个元素的一组记录(58,35,93,20,12,78,56,41,79)进行直接插入排序(由小到大排序) ,当把第7个记录56插入有序表,为寻找插入位置需比较________次。
7.在对11个记录的序列(12,35, 9, 7 ,2, 11 ,56 , 95 ,37,58 ,60)进行直接插入排序时,当把第6个记录11 插入到有序表时,为寻找插入位置,元素间需比较_________次。
(由小到大排列)8.结构中的数据元素存在一对多的关系称为________结构。
9.哈希函数是记录关键字的值与该记录___ ___之间所构造的对应关系。
10.设有一棵深度为5的完全二叉树,第5层上有3个结点,该树共有_______个结点。
(根所在结点为第1层)11.20个元素进行冒泡法排序,通常需要进行19趟冒泡,其中第10趟冒泡共需要进行____ ____次元素间的比较。
12.一棵二叉树中每一个非叶结点的度数都为2,共有10个非叶结点,则该树共有_______ 个结点。
13.一棵有19个结点的二叉树,采用链式结构存储,该树结构中有_____ 个指针域为空。
14. 序列3,1,7,18,6,9,13,12经一趟归并排序的结果为__ ____。
15.中序遍历一棵________树可得到一个有序序列。
16.一棵有16个叶结点的哈夫曼树,则该树共有_______个非叶结点。
17.二叉排序树插入操作中,新插入的结点总是以树的________ 结点被插入的18.________遍历二叉排序树可得到一个有序序列。
19. 广义表的( a , (d,a ,b) , h , (e ,( (i ,j ) ,k )) )深度是________ 。
20. 广义表( f , h , (a ,b, d, c) , d , e ,( (i ,j ) ,k ) )的长度是________。
21. 序列4,2,5,3,8,6, 7, 9,采用归并排序算法(升序),经一趟归并后,序列的结果________。
22. 广义表的( h ,c,g, a , (a ,b) , d , e ,( (i ,j ) ,k ) )深度是_______。
23. 字符串a1=〝teijing〞, a2 =〝tef〞, a3= 〝teifang〞, a4=“tefi〞最小的是________。
24.设有串p1=”ABADF”,P2=”ABAFD”,P3=”ABADFA”P4=”ABAF”, 四个串中最小的是________ 。
三、综合题1.设查找表为(1)画出对上述查找表进行折半查找所对应的判定树(树中结点用下标表示)(2)说明成功查找到元素86需要经过多少次比较?(3)求在等概率条件下,成功查找的平均比较次数?2.(1)设有数据集合{50,39,17,83,111,14,65,13,91,102,49},依次取集合中各数据构造一棵二叉排序树。
(2) 一组记录的关键字序列为(6,9,7,4,5,8),利用堆排序(堆顶元素是最小元素)的方法建立初始堆。
(要求用完全二叉树表示)3.(1) 一组记录的关键字序列为(26,59,36,18,20,25),给出利用堆排序(堆顶元素是最小元素)的方法建立的初始堆(要求以完全二叉树描述)。
(2) 对关键字序列(26,59,36,18,20,64)采用快速排序,给出以第一个关键字为分割元素,经过一次划分后的结果。
4. (1) 如下表为一个长度为10的有序表,给出按折半查找对该表进行查找的判定树(2) 按折半查找对该表进行查找,求在等概率情况下查找成功的平均比较次数。
为了成功查找72 ,给出元素的比较次数。
5.(1) 以1,2,3 ,6,7,8作为叶结点的权,构造一棵哈夫曼树(2) 给出具有相应权重值的叶结点的哈夫曼编码。
四、程序填空题1.以下函数在a[0]到a[n-1]中,用折半查找算法查找关键字等于k的记录,查找成功返回该记录的下标,失败时返回-1,完成程序中的空格typedef struct{ int key;……}NODE;int Binary_Search(NODE a[ ], int n, int k){int low, mid, high;low=0;high=n-1;while(__(1)______){mid=(__(2)______)if(a[mid].key==k)return __(3)______ ;else if (__(4)______)low=mid+1;else __(5)______;}return -1}1.(1) low<=high(2)( low+high)/2(3) mid;(4) a[mid].key<k(5) high=mid-1;2.设线性表以不带头结点的单向链表存储,链表头指针为head,以下程序的功能是输出链表中各结点中的数据域data。
完成程序中空格部分。
#define NULL 0void main( ){NODE *head,*p;p=head; /*p为工作指针*/do{printf(“%d\n”, ___(1)_____);___(2)_____;}while(___(3)_____);}2.(1)p->data(2)p=p->next(3)p!=NULL3.以下程序是前序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT指向根结点)。
void Inorder (struct BTreeNode *BT){if(BT!=NULL){__(1)______;__(2)______;Inorder(BT-- >right);}}利用上述程序对右图进行前序遍历,结果是__(3)______;3.(1)printf(“%c”,BT->data)(2)Inorder(BT->left)(3)a b d f e c4.以下程序是后序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT指向根结点)。