数据结构(本)期末综合练习(2022年6月)
- 格式:docx
- 大小:48.18 KB
- 文档页数:26
∑∑∑====n 1i n 1j 3n 1k n 162)1)(n n(n 21)n(n 2161)1)(2n n(n 21 i 21i 2121)i(i j 1n 1i n1i n 1i 2n 1i i 1j n 1i i 1j j 1k ++=++++==+=⎪⎭⎫ ⎝⎛+==∑∑∑∑∑∑∑∑========第一章 综合练习2.什么是数据结构? 有关数据结构的讨论涉及哪三个方面?【解答】数据结构是指数据以及相互之间的关系。
记为:数据结构 = { D, R }。
其中,D 是某一数据对象,R 是该对象中所有数据成员之间的关系的有限集合。
有关数据结构的讨论一般涉及以下三方面的内容:① 数据成员以及它们相互之间的逻辑关系,也称为数据的逻辑结构,简称为数据结构; ② 数据成员及其关系在计算机存储器内的存储表示,也称为数据的物理结构,简称为存储结构;③ 施加于该数据结构上的操作。
数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储不是一码事,是与计算机存储无关的。
因此,数据的逻辑结构可以看作是从具体问题中抽象出来的数据模型,是数据的应用视图。
数据的存储结构是逻辑数据结构在计算机存储器中的实现(亦称为映像),它是依赖于计算机的,是数据的物理视图。
数据的操作是定义于数据逻辑结构上的一组运算,每种数据结构都有一个运算的集合。
例如搜索、插入、删除、更新、排序等。
5.设n 为正整数, 分析下列各程序段中加下划线的语句的程序步数。
(1) for (int i=1;i<=n ;i++)for (int j=1;j<=n ;j++){ c[i][j]=0.0;for (int k=1;k<=n ;k++)c[i][j]=c[i][j]+a[i][k]*b[k][j];}(2) x=0; y=0;for (i=1;i<=n ;i++)for (j=1;j<=i ;j++)for (k=1;k<=j ;k++)x=x+y ;(3) i=1; j=1;while (i<=n&&j<=n){ i=i+1; j=j+i ; }(4) i=1;do {for (j=1;j<=n ;j++) i=i+j ;} while (i<100+n);【解答】(1) (2)n j 1n j 1n(n 1)x 1 i 1j 12n(n 1)n(n 1)n(n 1)n(n 1)x 2 i 1j 1122222==+==+=+++++⎛⎫⎛⎫⎛⎫==++=++=+ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭∑∑次数时,时,n j 1n(n 1)n(n 1)x 3, i 12j 1322=⎛+⎫+⎛⎫⎛⎫==++=+ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭∑时(3) i = 1时,i = 2,j = j + i = 1 + 2 = 2 + 1,i = 2时,i = 3,j = j + i = ( 2 + 1 ) + 3 = 3 + 1 + 2,i = 3时,i = 4,j = j + i = ( 3 + 1 + 2 ) + 4 = 4 + 1 + 2 + 3,i = 4时,i = 5,j = j + i = ( 4 + 1 + 2 + 3 ) + 5 = 5 + 1 + 2 + 3 + 4,……i = k 时,i = k + 1,j = j + i = ( k + 1 ) + ( 1 + 2 + 3 + 4 + … + k ),解出满足上述不等式的k 值,即为语句i = i + 1的程序步数。
数据结构期末考试题及答案一、单项选择题(每题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. 栈的特点是___________,___________。
数据结构(本科)期末综合练习一(单选题)单选题1. 一个数组元素a[i] 与( )的表示等价。
A. *(a+i)B. a+iC. *a+iD. &a+i2. 若需要利用形参直接访问实参,则应把形参变量说明为( )参数。
A. 指针B. 引用C. 传值D. 常值3. 下面程序段的时间复杂度为( )。
for(int i=0; i<m; i++)for(int j=0; j<n; j++) a[i][j] = i*j;A. O(m2)B. O(n2)C. O(m*n)D. O(m+n)4. 执行下面程序段时,执行S语句的次数为( )。
for(int i=1; i<=n; i++)for(int j=1; j<=i; j++) S;A. n2B. n2/2C. n(n+1)D. n(n+1)/25. 下面算法的时间复杂度为( )。
int f(unsigned int n) {if(n==0 || n==1) return 1;else return n*f (n-1);}A. O(1)B. O(n)C. O(n2)D. O(n!)6. 一种抽象数据类型包括数据和( )两个部分。
A. 数据类型B. 操作C. 数据抽象D. 类型说明7. 当一个作为实际传递的对象占用的存储空间较大并可能被修改时,应最好说明为( ),以节省参数值的传输时间和存储参数的空间。
A. 基本类型B. 引用型C. 指针型D. 常值引用型8. 当需要进行标准I/O操作时,则应在程序文件中包含iostream.h头文件,当需要进行文件I/O操作时,则应在程序文件中包含( )头文件。
A.fstream.hB.stdlib.hC.iomanip.hD.string.h9. 一个记录r理论上占有的存储空间的大小等于所有域类型长度之和,实际上占有的存储空间的大小即记录长度为( )。
A. 所有域长度之和B. 最大域所占字节长度C. 任意一个域长度D. sizeof(r)的值10. 输出一个二维数组b[m][n]中所有元素值的时间复杂度为( )。
数据结构期末考试试题及答案一、选择题1. 评价一个算法时间性能的主要标准是( )。
A、算法易于调试B、算法易于理解C、算法的稳定性和正确性D、算法的时间复杂度2. 计算机算法具备有输入、输出、()等五个特性。
A、可行性、可移植性和可扩充性B、可行性、确定性和有穷性C、确定性、有穷性和稳定性D、易读性、稳定性和安全性3. 带头结点的单链表head为空的判定条件是()。
A、head==NULLB、head->next==NULLC、head->next==headD、head!=NULL4. 以下关于线性表的说法不正确的是( )。
A、线性表中的数据元素可以是数字、字符、记录等不同类型。
B、线性表中包含的数据元素个数不是任意的。
C、线性表中的每个结点都有且只有一个直接前趋和直接后继。
D、存在这样的线性表:表中各结点都没有直接前趋和直接后继。
5. 在顺序表中,只要知道( ),就可在相同时间内求出任一结点的存储地址。
A、基地址B、结点大小C、向量大小D、基地址和结点大小6. ( )运算中,使用顺序表比链表好。
A、插入B、删除C、根据序号查找D、根据元素值查找7. 一个长度为n的顺序表中,向第i个元素之前插入一个新元素时,需要向后移动()个元素A、n-iB、n-i+1C、n-i-1D、i8. ( )适合作为经常在首尾两端操作线性表的存储结构。
A、顺序表B、单链表C、循环链表D、双向链表9. 栈和队列的共同点是()A、都是先进后出B、都是先进先出C、只允许在端点处插入和删除元素D、没有共同点10. 一个队列的入列序列是1 2 3 4,则队列的输出序列是( )。
A、4 3 2 1B、1 2 3 4C、1 4 3 2D、3 2 4 111. 队列与一般的线性表的区别在于( )。
A、数据元素的类型不同B、运算是否受限制C、数据元素的个数不同D、逻辑结构不同12. “假上溢”现象会出现在( )中。
A、循环队列B、队列C、链队列D、顺序队列二、填空题1.数据的逻辑结构被分为集合、线性结构、树形结构和图结构。
数据结构(本)期末综合练习综合练习一一、单项选择题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个结点,则该树总共有()个结点。
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、简述堆栈和队列两种数据类型的异同点。
栈和队列都是线性结构,可以在向量的任何位置插入和删除元素;对于栈只能在栈顶插入和删除元素;对于队列只能在队尾插入和队首删除元素。
2、什么静态查找表和动态查找表。
静态查找表——仅作查询和检索操作的查找表。
动态查找表——在查询之后,还需要将“查询”结果为“不在查找表中”的数据元素插入到查找表中;或者,从查找表中删除其“查询”结果为“在查找表中”的数据元素。
3、试比较顺序存储结构和链式存储结构的优缺点。
在什么情况下用顺序表比链表好?答:① 顺序存储时,相邻数据元素的存放地址也相邻(逻辑与物理统一);要求内存中可用存储单元的地址必须是连续的。
优点:存储密度大(=1),存储空间利用率高。
缺点:插入或删除元素时不方便。
②链式存储时,相邻数据元素可随意存放,但所占存储空间分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针优点:插入或删除元素时很方便,使用灵活。
缺点:存储密度小(<1),存储空间利用率低。
顺序表适宜于做查找这样的静态操作;链表宜于做插入、删除这样的动态操作。
若线性表的长度变化不大,且其主要操作是查找,则采用顺序表;若线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。
4、分析稳定的排序和不稳定的排序方法。
假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳定的;否则称为不稳定的。
5、图的存储结构有哪些?十字链表,邻接矩阵,邻接表,邻接多重表,二维数组。
6、简述度为2的树与二叉树的区别。
二叉树的度最大为2,而树的度无此限制。
在二叉树中,一个节点的子树有左、右之分,不能互换位置。
而度为2的树则无此限制。
三、程序分析写结果:1、写出下列程序段的输出结果(栈的元素类型为char;字符型)。
数据结构(本)期末综合练习综合练习一一、单项选择题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个结点,则该树总共有()个结点。
《数据结构》期末考试试题及答案一、选择题(每题2分,共20分)1. 下列哪种数据结构是线性结构?A. 栈B. 树C. 队列D. 图答案:A2. 在计算机科学中,什么是最基本的数据结构?A. 数组B. 链表C. 栈D. 树答案:C3. 下列哪种操作的时间复杂度是O(1)?A. 在链表中插入元素B. 在数组中查找元素C. 在树中删除节点D. 在图中寻找最短路径答案:B4. 下列哪种数据结构常常用于实现栈和队列?A. 数组B. 链表C. 树D. 图答案:A5. 下列哪种数据结构是有序的?A. 栈B. 队列C. 链表D. 图答案:C二、填空题(每题2分,共20分)1. 在数据结构中,栈是一种后进先出(____)的数据结构。
答案:线性表2. 队列是一种先进先出(____)的数据结构。
答案:线性表3. 链表是一种____数据结构,由一系列节点组成。
答案:非线性4. 二叉树是一种特殊的树,它的每个节点最多有两个____。
答案:子节点5. 哈希表是通过____函数将关键字映射到表中的位置来访问数据。
答案:哈希三、判断题(每题2分,共20分)1. 树是一种线性结构。
()答案:错误2. 链表的插入和删除操作时间复杂度都是O(1)。
()答案:错误3. 图是一种线性结构。
()答案:错误4. 哈希表是一种基于顺序结构的的数据结构。
()答案:错误5. 在数据结构中,时间复杂度O(n)表示算法随着输入规模的增加而线性增长。
()答案:正确四、简答题(每题10分,共30分)1. 请简述栈和队列的特点和应用场景。
答案:栈是一种后进先出(LIFO)的数据结构,应用场景包括函数调用栈、表达式求值等。
队列是一种先进先出(FIFO)的数据结构,应用场景包括任务队列、缓冲区等。
2. 请简述链表的优缺点。
答案:链表的优点包括动态扩容、插入和删除操作时间复杂度为O(1)、可以方便地实现各种复杂数据结构。
缺点包括占用内存空间较大、不如数组支持随机访问。
数据结构(本科)期末综合练习二(填空与判断题)填空题1. 数据是__信息__的载体,它能够被计算机程序识别、存储和加工处理。
2. 数据结构包括逻辑结构、__存储结构__和数据的运算三个方面。
3. 数据结构的逻辑结构包括线性结构和__非线性__结构两大类。
4. 数据结构的存储结构包括顺序、__链接___、索引和散列等四种。
5. 基本数据类型是计算机已经实现了的_数据结构__。
6. 抽象数据类型的特点是__数据封装__、信息隐蔽、使用与实现分离。
7. 算法的一个特性是__有穷性__,即算法必须执行有限步就结束。
8. 面向对象的特征应包括对象、类、__继承__、消息通信。
9. 属性与服务相同的对象构成类,类中的每个对象称为该类的__实例__。
10. 对象的私有状态只能通过该对象的__操作(或服务)_才能改变。
11. 模板类是一种数据抽象,它把__数据类型_当作参数,可以实现类的复用。
12. 在类的继承结构中,位于上层的类叫做基类,其下层的类则叫做__派生(或子)__类。
13. 一维数组所占用的空间是连续的。
但数组元素不一定顺序存取,通常是按元素的__下标(或顺序号)__存取的。
14. 在程序运行过程中不能扩充的数组是__静态__分配的数组。
这种数组在声明它时必须指定它的大小。
15. 在程序运行过程中可以扩充的数组是__动态___分配的数组。
这种数组在声明它时需要使用数组指针。
16. 二维数组是一种非线性结构,其中的每一个数组元素最多有__两个__个直接前驱(或直接后继)。
17. 若设一个n n的矩阵A的开始存储地址LOC(0, 0) 及元素所占存储单元数d已知,按行存储时其任意一个矩阵元素a[i][j]的存储地址为__ LOC(0,0)+(i*n+j)*d__。
18. 对称矩阵的行数与列数__相等_且以主对角线为对称轴,a ij = a ji,因此只存储它的上三角部分或下三角部分即可。
19. 将一个n阶对称矩阵的上三角部分或下三角部分压缩存放于一个一维数组中,则一维数组需要存储__n(n+1)/2 _个矩阵元素。
数据结构(本科)期末综合练习五(算法设计题)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,统计在一个输入字符串中各个不同字符出现的频度。
20226月数据结构习题1、一棵二叉树没有单分支结点,有6个叶结点,则该树总共有____11____个结点。
2、数据结构的实质就是研究数据的、以及定义在逻辑结构上所进行的一组5、一个图的_________表示法是唯一的,而___________表示法是不唯一的。
6、已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点,则该树中有个叶子结点。
7、G为无向图,如果从G的某个顶点出发,进行一次广度优先搜索,即可访问图的每个顶点,则该图一定是。
8、结构中的数据元素存在多对多的关系称为_____图状(网状)___结构。
9、按照二叉树的递归定义,对二叉树遍历的常用算法有先序;中序;后序三种。
10、在具有n个单元的循环队列中,队满时共有__________个元素。
11、3个结点可构成棵不同形态的树。
12、一棵深度为h的满二叉树上的结点总数为,一棵深度为h的完全二叉树上的结点总数的最小值为,最大值为14、根据数据元素间关系的不同特性,通常可分为集合、线性、树形、图状四类基本结构。
15、数据结构中的数据元素存在一对多的关系称为__树形_____结构。
16、要求在n个数据元素中找其中值最大的元素,设基本操作为元素间的比较。
则比较的次数和算法的时间复杂度分别为__n-1和O(n)__17、顺序存储的栈中,在作进栈运算时,应先判别栈是否,在进行出栈运算时应先判别栈是否。
当栈中元素为n个,作进栈运算时发生上溢,则说明该栈的最大容量为。
18、在带头结点的循环链表h中,判断表空的条件是19、具有n个顶点的有向完全图的弧数为_________。
20、数据的存储结构被分为_________和_________。
21、设有一顺序栈S,元素1,2,3,4,5,6依次进栈,如果6个元素出栈的顺序是2,3,4,6,5,1,则栈的容量至少应该是________。
22、在线性表的顺序存储中,元素之间的逻辑关系是通过决定的;在线性表的链式存储中,元素之间的逻辑关系是通过_________决定的。
数据结构(本)期末综合练习综合练习一一、单项选择题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 ) 结构。
2022年《数据结构》试题院、系领导审批并签名A/B卷广州大学2022-2022学年第二学期考试卷课程数据结构考试形式(开卷/闭卷,考试/考查)学院系专业班级学号姓名_题次分数评分一10二20三10四30五30六七八九十总分评卷人100一、单项选择题(10分,每小题1分)1、输出一个二维数组b[m][n]中所有元素值的时间复杂度为()。
A.O(n)B.O(m+n)C.O(n2)D.O(m某n)2、在一个长度为n的顺序表中删除一个值为某的元素时,需要比较元素和移动元素的总次数为()。
A.(n+1)/2B.n/2C.nD.n+13、设双向循环链表中结点的结构为(data,lLink,rLink),且不带表头结点。
若想在指针p所指结点之后插入指针所指结点,则应执行下列哪一个操作?A.p->rLink=;->lLink=p;p->rLink->lLink=;->rLink=p->rLink;B.p->rLink=;p->rLink->lLink=;->lLink=p;->rLink=p->rLink;C.->lLink=p;->rLink=p->rLink;p->rLink=;p->rLink->lLink=;D.->lLink=p;->rLink=p->rLink;p->rLink->lLink=;p->rLink=;4、为增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的内存空间时,应将两栈的()分别设在这片内存空间的两端。
A.(n-1)/2B.n/2()。
A.3B.4C.5D.67、n(n>1)个顶点的强连通图中至少含有()条有向边。
A.n-1B.nn(n-1)/2D.n(n-1)8、一个有n个顶点和n条边的无向图一定是()。
A.连通的B.不连通的C.无环的D.有环的9、如果只想得到1024个元素组成的序列中的前5个最小元素,那么用()方法最快。
数据结构(本)期末综合练习(2022年6月)期末综合练习一一、单项选择题1.深度为5的完全二叉树共有20个结点,则第5层上有()个结点(根所在结点为第一层)。
A.3B.8C.5D.62.同一种逻辑结构()。
A.只能有唯一的存储结构B.可以有不同的存储结构C.只能表示某一种数据元素之间的关系D.以上三种说法均不正确3.已知一个图的边数为m,则该图的所有顶点的度数之和为()。
A.2mB.mC.2m+1D.m/24.链表所具备的特点是()。
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.顺序表11.散列查找的原理是()。
A.在待查记录的关键字值与该记录的存储位置之间建立确定的对应关系B.按待查记录的关键字有序的顺序方式存储C.按关键字值的比较进行查找D.基于二分查找的方法12.算法的时间复杂度与()有关。
A.所使用的计算机B.与计算机的操作系统C.与算法本身D.与数据结构13.对n个元素进行冒泡排序若某趟冒泡中只进行了()次元素间的交换,则表明序列已经排好序。
A.1B.2C.0D.n-114.设有一个长度为n的顺序表,要删除第i个元素需移动元素的个数为()。
A.n-i+1B.n-iC.n-i-1D.i15.排序过程中,每一趟从无序子表中将一个待排序的记录按其关键字的大小放置到已经排好序的子序列的适当位置,直到全部排好序为止,该排序算法是()。
A.直接插入排序B.快速排序C.冒泡排序D.选择排序16.在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用的语句是()。
A.p=q->ne某tB.p->ne某t=qC.p->ne某t=qne某tD.q->ne某t=NULL17.在对一组元素(64,48,106,33,25,82,70,55,93)进行直接插入排序时,当进行到要把第7个元素70插入到已经排好序的子表时,为找到插入位置,需进行()次元素间的比较(指由小到大排序)。
A.6B.2C.3D.418.从一个栈顶指针为top的链栈中删除一个结点时,用变量某保存被删结点的值,则执行()。
A.某=top->data;top=top->ne某t;B.某=top->data;C.top=top->ne某t;某=top->data;D.top=top->ne某t;某=data;19.采用顺序查找法对长度为n的线性表进行查找(不采用表尾设监视哨的方法),最坏的情况下要进行()次元素间的比较。
A.n+2B.nC.n-1D.n/220.在一个链队中,假设f和r分别为队头和队尾指针,则删除一个结点的运算为()。
A.r=f->ne某t;B.r=r->ne某t;C.f=f->ne某t;D.f=r->ne某t;21.如图1,若从顶点a出发按广度优先搜索法进行遍历,则可能得到的顶点序列为()。
A.acebdgfaB.abecdgfC.acfedgbD.abecfdgbecdgf图122.一个栈的进栈序列是a,b,c,d,e,则栈的不可能输出序列是()(进栈出栈可以交替进行)。
A.dceabB.edcbaC.decbaD.abcde223.元素2,4,6,8按顺序依次进栈,则该栈的不可能输出序列是()(进栈出栈可以交替进行)。
A.8,6,4,2B.2,4,6,8C.4,2,8,6D.8,6,2,424.有一个长度为10的有序表,按折半查找对该表进行查找,在等概率情况下查找成功的平均比较次数为()。
A.26/10B.29/10C.29/9D.31/1025.排序方法中,从未排序序列中挑选元素,并将其依次放入已排序序列(初始为空)的一端的方法,称为()排序。
A.归并B.插入C.选择D.快速26.排序算法中,从未排序序列中依次取出元素与已排序序列(初始为空)中的元素进行比较(要求比较次数尽量少),然后将其放入已排序序列的正确位置的方法是()。
A.冒泡B.直接插入C.折半插入D.选择排序27.一棵哈夫曼树总共有23个结点,该树共有()个叶结点(终端结点)A.10B.13C.11D.1228.设有一个10阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主存储到一维数组B中(数组下标从1开始),则矩阵中元素A8,5在一维数组B中的下标是()。
A.33B.32C.85D.4129.队列的插入操作在()进行。
A.队头B.队尾C.队头或队尾D.在任意指定位置30.在一个无向图中,所有顶点的度数之和等于边数的()倍。
A.3B.2.5C.1.5D.2二、填空题1.一棵二叉树没有单分支结点,有6个叶结点,则该树总共有________个结点。
2.栈和队列的操作特点分别是_______和________。
4.结构中的数据元素存在多对多的关系称为________结构。
5.按照二叉树的递归定义,对二叉树遍历的常用算法有____、____、____三种。
6.根据数据元素间关系的不同特性,通常可分为集合、线性、、四类基本结构。
7.数据结构中的数据元素存在一对多的关系称为________结构。
8.要求在n个数据元素中找其中值最大的元素,设基本操作为元素间的比较。
则比较的次数和算法的时间复杂度分别为________和________9.把数据存储到计算机中,并具体体现数据之间的逻辑结构称为________结构。
10.在一个单向链表中p所指结点之后插入一个所指向的结点时,应执行________和p->ne某t=;的操作。
11.结构中的数据元素存在一对一的关系称为________结构。
12.在二叉树的链式存储结构中,通常每个结点中设置三个域,它们是值域、3。
13.如图2所示的二叉树,其后序遍历序列为abdehg图215.n个元素进行冒泡法排序,通常需要进行________趟冒泡。
16.向一个栈顶指针为h的链栈中插入一个所指结点时,可执行->ne某t=h;和________。
17.二叉树为二叉排序的充分必要条件是其任一结点的值均大于其左孩子的值、小于其右孩子的值。
这种说法是__________的。
(回答正确或不正确)18.在一个链队中,设f和r分别为队头和队尾指针,则插入所指结点的操作为________和r=;(结点的指针域为ne某t)19.图的深度优先搜索和广度优先搜索序列不一定是唯一的。
此断言是______的。
(回答正确或不正确)20.设有一棵深度为4的完全二叉树,第四层上有5个结点,该树共有_________个结点。
(根所在结点为第1层)21.根据搜索方法的不同,图的遍历有____、____两种方法22.对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的_______、_______和_______三项信息。
23.按某关键字对记录序列排序,若关键字的记录在排序前和排序后仍保持它们的前后关系,则排序算法是稳定的,否则是不稳定的。
24.在对一组记录(55,39,97,22,16,73,65,47,88)进行直接插入排序时,当把第7个记录65插入到有序表时,为寻找插入位置需比较_________次。
三、综合题1.(1)利用筛选过程把序列{42,82,67,102,16,32,57,52}建成堆(小根堆),画出该堆(不要求中间过程)。
(2)写出对上述堆对应的完全二叉树进行中序遍历得到的序列。
42.(1)以2,3,4,7,8,9作为叶结点的权,构造一棵哈夫曼树(要求每个结点的左子树根结点的权小于等于右子树根结点的权),给出相应权重值叶结点的哈夫曼编码。
(2)一棵哈夫曼树有n个叶结点,它一共有多少个结点?简述理由?3.设查找表为(16,15,20,53,64,7),(1)用冒泡法对该表进行排序(要求升序排列),要求写出每一趟的排序过程。
(2)在排序后的有序表的基础上,画出对其进行折半查找所对应的判定树.(要求以数据元素作为树结点)(3)求在等概率条件下,对上述有序表成功查找的平均查找长度.4.一组记录的关键字序列为(46,79,56,38,40,84)(1)利用快速排序的方法,给出以第一个记录为基准得到的一次划分结果(给出逐次交换元素的过程,要求以升序排列)(2)对上述序列用堆排序的方法建立大根堆,要求以二叉树逐次描述建堆过程。
5.(1)设有一个整数序列{50,38,16,82,110,13,64},依次取出序列中的数,构造一棵二叉排序树(2)利用上述二叉排序树,为了查找110,经多少次元素间的比较能成功查到,为了查找15,经多少次元素间的比较可知道查找失败56.设查找表为(50,60,75,85,96,98,105,110,120,130)(1)说出进行折半查找成功查找到元素120需要进行多少次元素间的比较?(2)为了折半查找元素95,经过多少次元素间的比较才能确定不能查到?(3)画出对上述有序表进行折半查找所对应的判定树(要求以数据元素作为树结点)四、程序填空题1.以下函数为链队列的入队操作,某为要入队的结点的数据域的值,front、rear分别是链队列的队头、队尾指针tructnode{ElemTypedata;tructnode某ne某t;};tructnode某front,某rear;voidInQueue(ElemType某){tructnode某p;p=(tructnode某)___(1)_____;p->data=某;p->ne某t=NULL;___(2)_____;rear=___(3)_____;}2.以下是用尾插法建立带头结点且有n个结点的单向链表的程序,结点中的数据域从前向后依次为1,2,3,……,n,完成程序中空格部分。
NODE某create(n){NODE某head,某p,某q;inti;p=(NODE某)malloc(izeof(NODE));head=(1);(2);pne某t=NULL;/某建立头结点某/for(i=1;i<=n;i++){p=(3);6pdata=i;pne某t=NULL;qne某t=(4);(5);}return(head);}3.以下函数在head为头指针的具有头结点的单向链表中删除第i个结点,tructnode{intdata;tructnode某ne某t;};typedeftructnodeNODEintdelete(NODE某head,inti){NODE某p,某q;intj;q=head;j=0;while((q!=NULL)&&(___(1)_____)){___(2)_____;j++;}if(q==NULL)return(0);p=___(3)_____;___(4)_____=p->ne某t;free(___(5)_____);return(1);}4.以下程序是中序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT指向根结点)。