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

合集下载

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

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

数据结构(本)期末综合练习期末综合练习一一、单项选择题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.指出算法的功能并求出其时间复杂度。 int fun ( int n ) { int i = 1, s = 1; while ( s < n ) s += ++i; return i; } 功能为: 时间复杂度为: 2.指出算法的功能并求出其时间复杂度。 void matrimult ( int a[M][N], int b[N][L], int c[M][L] ) { //M、N、L均为全局整型常量 int i, j, k; for ( i = 0; i < M; i++ ) for ( j = 0; j < L; j++ ) c[i][j] = 0; for ( i = 0; i < M; i++ ) for ( j = 0; j < L; j++ ) for ( k = 0; k < N; k++ ) c[i][j] += a[i][k] * b[k][j]; } 功能为: 时间复杂性为: 3.针对如下算法,回答问题: 若数组A[n] = {12, 24, 0, 38, 0, 0, 0, 0, 29, 0, 45, 0}, n = 12,给出算法执行后数组A[n]的状态。 template <class T> void unknown ( T A[ ], int n ) { int free = 0; for ( int i = 0; i < n; i++ ) if ( A[i] != 0 ) { if ( i != free ) { A[free] = A[i]; A[i] = 0; } free++; } } 算法执行的结果 4.设顺序表SeqList具有下列操作: int Length( ) const;//计算表长度并返回,若表为空则返回 0 T Remove( ); //删除当前表项并返回其值,置下一表 项为当前表项 T First( ); //取表中第一个表项的值并返回,并置 为当前表项 T Next( ); //取当前表项后继表项的值并返回, //并把此后继表项置为当前表项 若顺序表中存放的数据为{29,38,47,16,95,64,73,83,51,10,0,26},表 的长度为12,参数值s=10, t=30,说明算法执行后顺序表的状态和长度 的变化。 #include <iostream.h> #include “SeqList.h” template <class T>

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

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

数据结构(本)期末综合练习综合练习一一、单项选择题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,统计在一个输入字符串中各个不同字符出现的频度。

大学数据结构期末考试试题(有答案)

大学数据结构期末考试试题(有答案)

大学数据结构期末考试试题(有答案)大学数据结构期末考试试题(有答案)题一:单项选择题(共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. 二叉树的三种遍历方法包括前序遍历、中序遍历和后序遍历。

前序遍历首先访问根节点,然后递归遍历左子树,最后递归遍历右子树。

中序遍历首先递归遍历左子树,然后访问根节点,最后递归遍历右子树。

后序遍历首先递归遍历左子树,然后递归遍历右子树,最后访问根节点。

数据结构期末测试题及答案

数据结构期末测试题及答案

数据结构期末测试题及答案一、选择题(每题2分,共40分)1. 数据结构是指()。

A. 存储数据的方式和方法B. 描述数据和操作数据的方式和方法C. 组织数据和操作数据的方式和方法D. 分析数据和操作数据的方式和方法答案:C2. 在数据结构中,数组是()。

A. 存储在连续内存空间中的元素集合B. 存储在非连续内存空间中的元素集合C. 存储在链表中的元素集合D. 存储在哈希表中的元素集合答案:A3. 下列哪种数据结构的查找操作时间复杂度一定是O(1)?A. 数组B. 链表C. 栈D. 哈希表答案:D4. 假设有一个长度为n的有序数组,采用二分法查找元素的时间复杂度是()。

A. O(1)B. O(log n)C. O(n)D. O(n log n)答案:B5. 在数据结构中,栈是一种()。

A. 先进先出的数据结构B. 后进先出的数据结构C. 可以在任意位置插入和删除元素的数据结构D. 可以动态扩展和缩小的数据结构答案:B二、填空题(每题5分,共40分)1. 链表是一种()数据结构。

答案:线性2. 在二叉树中,一个节点的子节点个数最多为()。

答案:23. 在图的表示中,邻接矩阵法中用1表示两个顶点之间存在边,用0表示不存在边,这种方法适用于边的数量相对较()的图。

答案:少4. 在树的遍历中,先序遍历是指先访问()节点,然后再分别先序遍历它的左子树和右子树。

答案:根5. 哈希表通过()将键映射到值。

答案:哈希函数三、简答题(每题10分,共20分)1. 请简要介绍栈和队列的特点和用途。

栈是一种后进先出(LIFO)的数据结构,只能在栈顶进行插入和删除操作。

栈常用于实现程序调用的过程,如函数调用、表达式求值等。

队列是一种先进先出(FIFO)的数据结构,只能在队尾插入元素,在队头删除元素。

队列常用于实现排队、任务调度等场景。

2. 请简述二叉搜索树的特点和应用场景。

二叉搜索树是一种有序树结构,每个节点的左子树的值都小于该节点的值,右子树的值都大于该节点的值。

国开作业数据结构(本)-期末综合练习——单项选择题66参考(含答案)

国开作业数据结构(本)-期末综合练习——单项选择题66参考(含答案)

题目:栈和队列的共同特点是()。

选项A:都是先进后出选项B:元素都可以随机进出选项C:都是操作受限的线性结构选项D:都是先进先出答案:都是先进后出题目:数据的存储结构包括数据元素的表示和()。

选项A:相关算法选项B:数据处理的方法选项C:数据元素间的关系的表示选项D:数据元素的类型答案:数据元素间的关系的表示题目:对一个栈顶指针为top的链栈进行入栈操作,通过指针变量p生成入栈结点,则执行:p=(struct node *)malloc(sizeof(struct node);p-data=a;和()。

选项A:p-next=top; top=p;选项B:top=top-next; p=top;选项C:p-next=top; p=top;选项D:top-next=p; p=top;答案:p-next=top; top=p;题目:树状结构中数据元素的位置之间存在()的关系。

选项A:多对多选项B:每一个元素都有一个直接前驱和一个直接后继选项C:一对一选项D:一对多答案:一对多题目:设头指针为head的非空的单向链表,指针p指向尾结点,则通过以下操作()可使其成为单向循环链表。

选项A:p=head;选项B:p-next=head;选项C:p-next = NULL ;选项D:head = p;答案:p-next=head;题目:设有一个长度为26的顺序表,要插入一个元素,并使它成为新表的第6个元素,需移动元素的个数为()。

选项A:20选项B:19选项C:21选项D:22答案:21题目:一种逻辑结构()。

选项A:可以有不同的存储结构选项B:只能有唯一的存储结构选项C:与存储该逻辑结构的计算机相关选项D:是指某一种数据元素的性质答案:可以有不同的存储结构题目:头指针为head的带头结点的单向循环链表,p所指向尾结点,要使该链表成为不带头结点的单向循环链表,可执行head=head-nex;和()。

选项A:p-next=head;。

计算机数据结构期末考试题及答案

计算机数据结构期末考试题及答案

计算机数据结构期末考试题及答案一、单选题(每题5分,共10题)1. 数据结构的基本概念是指()。

A. 对象的有序集合B. 数据元素之间的关系C. 数据的逻辑结构和存储结构D. 数据的操作和运算答案:C2. 在数据结构中,链表的插入和删除操作的时间复杂度是()。

A. O(1)B. O(log n)C. O(n)D. O(n^2)答案:A3. 堆栈(栈)是一种遵循()原则的数据结构。

A. 先进先出B. 后进先出C. 先进后出D. 后进后出答案:B4. 以下哪种搜索算法不适合用于无序表的查找?A. 顺序查找B. 二分查找C. 哈希查找D. 插值查找答案:B5. 常用的排序算法中,时间复杂度最优的是()。

A. 冒泡排序B. 快速排序C. 插入排序D. 选择排序答案:B6. 树是一种()结构。

A. 非线性B. 线性C. 扁平D. 单一答案:A7. 图中用于表示顶点之间关系的存储结构通常有()。

A. 邻接矩阵和邻接表B. 数组和链表C. 哈希表和堆栈D. 栈和队列答案:A8. 广度优先搜索算法用于求解()问题。

A. 最短路径B. 最长路径C. 最小生成树D. 编译错误答案:A9. 动态规划算法通常用于求解()问题。

A. 一维空间B. 二维空间C. 三维空间D. 多维空间答案:D10. 哈希表是一种通过()实现数据元素的查找操作。

A. 数值B. 字符串C. 对象D. 散列函数答案:D二、填空题(每空5分,共5题)1. 按照先进先出(FIFO)原则,队列的删除操作又称为()。

答案:出队2. 在二叉树中,每个节点最多可以有()个子节点。

答案:23. 在哈希表中,通过散列函数将关键字映射到存储位置的过程称为()。

答案:散列4. 快速排序算法的时间复杂度为()。

答案:O(n log n)5. 图中两个顶点之间的最短路径可以使用()算法求解。

答案:迪杰斯特拉三、编程题(每题20分,共2题)题目一:请编写一个函数,接受一个整数数组作为参数,返回数组中的最大值和最小值。

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

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

数据结构(本)期末综合练习综合练习一一、单项选择题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 ) 结构。

1252《数据结构(本)》期末考试复习题

1252《数据结构(本)》期末考试复习题

《数据结构(本)》期末综合练习题一、单选选择题1.栈和队列的共同特点是( C)。

A. 都是先进先出B.都是操作受限的线性结构C. 都是先进后出D.元素都可以随机进出2. 数据的存储结构包括数据元素的表示和(C)。

A. 数据处理的方法B.数据元素的类型C. 数据元素间的关系的表示D.相关算法3. 对一个栈顶指针为top的链栈进行入栈操作,通过指针变量p 生成入栈结点,则执行p=(struct node *)malloc(sizeof(struct node);p->data=a;和( C)。

A. top->next=p; p=top;B. p->next=top; p=top;C. p->next=top; top=p;D. top=top->next; p=top;4. 树状结构中数据元素的位置之间存在(B)的关系。

A. 每一个元素都有一个直接前驱和一个直接后继B.一对多C. 一对一D.多对多5.设头指针为 head 的非空的单向链表,指针 p 指向尾结点 , 则通过以下操作( D)可使其成为单向循环链表。

A. head = p;B. p=head;C. p->next = NULL ;D. p->next=head;6. 设有一个长度为26 的顺序表,要插入一个元素,并使它成为新表的第6 个元素,需移动元素的个数为(D)。

A. 22B. 19C. 20D. 217.一种逻辑结构( C)。

A. 与存储该逻辑结构的计算机相关B.是指某一种数据元素的性质C. 可以有不同的存储结构D.只能有唯一的存储结构8. 头指针为 head 的带头结点的单向循环链表,p 所指向尾结点,要使该链表成为不带头结点的单向循环链表,可执行head=head->nex;和( A)。

A. p->next=head;B. p= head->nextC. head->next=pD. head->next=p->next9. 把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为(D)。

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

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

数据结构(本)期末综合练习综合练习一一、单项选择题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.一个数组元素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满分1.00未标记标记试题试题正文对稀疏矩阵进行压缩存储,可采用三元组表,一个有10行的稀疏矩阵A共有97个零元素,其相应的三元组表共有3个元素。

该矩阵A有回答列。

反馈正确答案是:10试题2满分1.00未标记标记试题试题正文结构中的数据元素存在多对多的关系称为回答结构。

反馈正确答案是:图状试题3满分1.00未标记标记试题试题正文在单向链表中,q指向p所指结点的直接后继结点,要删除q所指结点,可以用操作回答= q->next;。

反馈正确答案是:p->next;试题4满分1.00未标记标记试题试题正文n个元素进行冒泡法排序,第j趟冒泡要进行回答次元素间的比较。

反馈正确答案是:n-j试题5满分1.00未标记标记试题试题正文对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的行下标、列下标和回答三项信息。

反馈正确答案是:数组元素试题6未标记标记试题试题正文中序遍历回答树可得到一个有序序列。

反馈正确答案是:二叉排序树试题7满分1.00未标记标记试题试题正文队列的操作特点是后进回答。

反馈正确答案是:后出试题8满分1.00未标记标记试题试题正文待排序的序列为8,3,4,1,2,5,9,采用直接选择排序算法,当进行了两趟选择后,结果序列为回答。

反馈正确答案是:1,2,4,8,3,5,9满分1.00未标记标记试题试题正文n个元素进行冒泡法排序,通常需要进行回答趟冒泡。

反馈正确答案是:n-1试题10满分1.00未标记标记试题试题正文广义表((a,b),d,e((i,j),k))的长度是回答。

反馈正确答案是:4试题11满分1.00未标记标记试题试题正文中序遍历二叉排序树可得到一个回答的序列。

反馈正确答案是:有序试题12满分1.00未标记标记试题试题正文广义表的(c,a,(a,b),d,e,((i,j),k))深度是回答。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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指向根结点)。

相关文档
最新文档