数据结构与算法期末复习题
- 格式:doc
- 大小:141.50 KB
- 文档页数:10
数据结构与算法期末考试题及答案一、选择题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。
注意:本试卷中所有题目的答案必须以书面形式给出,编程题需要提供完整的代码实现。
祝各位考生考试顺利,取得优异成绩。
数据结构c语言版期末考试复习试题[1]《数据结构与算法》复习题一、选择题。
1.在数据结构中,从逻辑上可以把数据结构分为CA.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构2.数据结构在计算机内存中的表示是指AA.数据的存储结构B.数据结构C.数据的逻辑结构D.数据元素之间的关系3.在数据结构中,与所使用的计算机无关的是数据的A结构。
A.逻辑B.存储C.逻辑和存储D.物理4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储C。
A.数据的处理方法B.数据元素的类型C.数据元素之间的关系D.数据的存储方法5.在决定选取何种存储结构时,一般不考虑A。
A.各结点的值如何B.结点个数的多少C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便。
6.以下说法正确的是D。
A.数据项是数据的基本单位数据元素是数据的基本单位B.数据元素是数据的最小单位数据项是数据的最小单位C.数据结构是带结构的数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构7.算法分析的目的是C,算法分析的两个主要方面是A。
(1)A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易读性和文档性(2)A.空间复杂度和时间复杂度B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性8.下面程序段的时间复杂度是O(n2)。
=0;for(I=0;ium=;9.下面程序段的时间复杂度是O(n某m)for(i=0;i10.下面程序段的时间复杂度是O(log3n)i=0;while(i<=n)i=i某3;11.在以下的叙述中,正确的是BA.线性表的顺序存储结构优于链表存储结构B.二维数组是其数据元素为线性表的线性表C.栈的操作方式是先进先出桟—先进后出队—先进先出D.队列的操作方式是先进后出12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着B。
《数据结构与算法》复习题一、选择题。
1.在数据结构中,从逻辑上可以把数据结构分为 C 。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构2.数据结构在计算机内存中的表示是指 A 。
A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。
A.逻辑 B.存储 C.逻辑和存储 D.物理4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。
A.数据的处理方法 B.数据元素的类型C.数据元素之间的关系 D.数据的存储方法5.在决定选取何种存储结构时,一般不考虑 A 。
A.各结点的值如何 B.结点个数的多少C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。
6.以下说法正确的是 D 。
A.数据项是数据的基本单位B.数据元素是数据的最小单位C.数据结构是带结构的数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。
(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进 C.分析算法的易读性和文档性(2)A.空间复杂度和时间复杂度 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性8.下面程序段的时间复杂度是 O(n2) 。
s =0;for( I =0; i<n; i++)for(j=0;j<n;j++)s +=B[i][j]; sum = s ;9.下面程序段的时间复杂度是 O(n*m) 。
for( i =0; i<n; i++)for(j=0;j<m;j++)A[i][j] = 0;10.下面程序段的时间复杂度是 O(log3n) 。
i = 0;while(i<=n)i = i * 3;11.在以下的叙述中,正确的是 B 。
《数据结构与算法》复习题一、选择题。
1.在数据结构中,从逻辑上可以把数据结构分为 C 。
A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构2.数据结构在计算机内存中的表示是指 A 。
A.数据的存储结构B.数据结构C.数据的逻辑结构D.数据元素之间的关系3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。
A.逻辑B.存储C.逻辑和存储D.物理(数据结构在计算机中的表示(映像)称为数据的物理(存储)结构)4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。
A.数据的处理方法B.数据元素的类型C.数据元素之间的关系D.数据的存储方法5.在决定选取何种存储结构时,一般不考虑 A 。
A.各结点的值如何B.结点个数的多少C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便。
6.以下说法正确的是 D 。
A.数据项是数据的基本单位B.数据元素是数据的最小单位C.数据结构是带结构的数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。
(1)A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进C.分析算法的易读性和文档性(2)A.空间复杂度和时间复杂度B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性8.下面程序段的时间复杂度是O(n2) 。
s =0;for( I =0; i<n; i++)for(j=0;j<n;j++)s +=B[i][j];sum = s ;9.下面程序段的时间复杂度是O(n*m) 。
for( i =0; i<n; i++)for(j=0;j<m;j++)A[i][j] =0;10.下面程序段的时间复杂度是O(log3n) 。
i =0;while(i<=n)i = i * 3;11.在以下的叙述中,正确的是B。
试题一一、单项选择题(每小题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. 对一个算法的评价,不包括如下(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.在数据结构中,从逻辑上可以把数据结构分为 C 。
A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构2.数据结构在计算机内存中的表示是指 A 。
A.数据的存储结构B.数据结构C.数据的逻辑结构D.数据元素之间的关系3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。
A.逻辑B.存储C.逻辑和存储D.物理(数据结构在计算机中的表示(映像)称为数据的物理(存储)结构)4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。
A.数据的处理方法B.数据元素的类型C.数据元素之间的关系D.数据的存储方法5.在决定选取何种存储结构时,一般不考虑 A 。
A.各结点的值如何B.结点个数的多少C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便。
6.以下说法正确的是 D 。
A.数据项是数据的基本单位B.数据元素是数据的最小单位C.数据结构是带结构的数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。
(1)A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进C.分析算法的易读性和文档性(2)A.空间复杂度和时间复杂度B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性8.下面程序段的时间复杂度是O(n2) 。
s =0;for( I =0; i<n; i++)for(j=0;j<n;j++)s +=B[i][j];sum = s ;9.下面程序段的时间复杂度是O(n*m) 。
for( i =0; i<n; i++)for(j=0;j<m;j++)A[i][j] =0;10.下面程序段的时间复杂度是O(log3n) 。
i =0;while(i<=n)i = i * 3;11.在以下的叙述中,正确的是B。
数据结构期末考试题及答案一、单项选择题(每题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. 在数据结构中,递归算法的时间复杂度通常可以用______来描述。
单选题(每题 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)___。
2020-2021学年《数据结构与算法》期末考试复习试题一、选择题。
1.在数据结构中,从逻辑上可以把数据结构分为 C 。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构2.数据结构在计算机内存中的表示是指 A 。
A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。
A.逻辑 B.存储 C.逻辑和存储 D.物理4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。
A.数据的处理方法 B.数据元素的类型C.数据元素之间的关系 D.数据的存储方法5.在决定选取何种存储结构时,一般不考虑 A 。
A.各结点的值如何 B.结点个数的多少C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。
6.以下说法正确的是 D 。
A.数据项是数据的基本单位B.数据元素是数据的最小单位C.数据结构是带结构的数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。
(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进 C.分析算法的易读性和文档性(2)A.空间复杂度和时间复杂度 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性8.下面程序段的时间复杂度是 O(n2) 。
s =0;for( I =0; i<n; i++)f or(j=0;j<n;j++)s +=B[i][j]; sum =s ;9.下面程序段的时间复杂度是 O(n*m) 。
for( i =0; i<n; i++)for(j=0;j<m;j++)A[i][j] = 0;10.下面程序段的时间复杂度是 O(log3n) 。
i = 0;while(i<=n)i = i * 3;11.在以下的叙述中,正确的是 B 。
数据结构与算法分析—期末复习题及答案1. 简答题a) 什么是数据结构?数据结构是一种组织和存储数据的方法,它涉及到将数据元素以及它们之间的关系组织成一种特定的方式,以便于有效地访问和操作。
b) 数据结构的分类有哪些?数据结构可以分为线性结构和非线性结构。
线性结构包括数组、链表、栈和队列等;非线性结构包括树和图等。
c) 什么是算法?算法指的是完成特定任务或求解特定问题的一系列步骤或指令。
算法需要满足正确性、可读性、健壮性和高效性等特性。
d) 算法的时间复杂度和空间复杂度是什么?时间复杂度是指在算法执行过程中所需的时间资源,空间复杂度是在算法执行过程中所需的存储空间资源。
2. 选择题a) 在排序算法中,如果待排序序列已经基本有序,以下哪个算法的性能最优?选项:A. 快速排序B. 冒泡排序C. 插入排序D. 归并排序正确答案:C. 插入排序b) 以下哪个数据结构通常用于实现递归算法?选项:A. 数组B. 链表C. 栈D. 队列正确答案:C. 栈3. 填空题a) 计算以下给定二叉树的前序遍历结果:A/ \B C/ \ / \D E F G正确答案:A, B, D, E, C, F, Gb) 给出选择排序算法的伪代码:```for i in range(len(arr)):min_index = ifor j in range(i+1, len(arr)):if arr[j] < arr[min_index]:min_index = jarr[i], arr[min_index] = arr[min_index], arr[i]```4. 案例题假设有一个包含100个元素的整数数组arr,对该数组进行排序后返回结果。
请使用任意一种排序算法,并给出算法的时间复杂度。
解答示例:我们可以使用快速排序算法来对数组进行排序,时间复杂度为O(nlogn)。
下面是该算法的Python代码实现:```def quick_sort(arr):if len(arr) <= 1:return arrpivot = arr[len(arr) // 2]left = [x for x in arr if x < pivot]middle = [x for x in arr if x == pivot]right = [x for x in arr if x > pivot]return quick_sort(left) + middle + quick_sort(right)arr = [5, 3, 2, 8, 1, 4, 7, 6, 9]sorted_arr = quick_sort(arr)print(sorted_arr)```运行结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]5. 解答题请描述并给出示例说明动态规划算法的应用场景。
10-11第一学期期末考试试卷《期末考试》一、名词解释(每小题4分,共20分。
)例:平衡二叉树二、填空题(每小题2分,共10分。
)1.如果一棵完全二叉树中有1001个结点,则树中包含的叶子结点有个。
三、问答题(每小题5分,共10分。
)1.在对线性表的处理中一般使用两种存储结构,顺序存储结构和链式存储结构。
试叙述在什么情况下使用顺序表比链表好?四、应用题(每小题5分,共30分。
)1.下表给出了字符在文本中出现的次数,请为这些字符设计编码方案并写出所设计的编2.已知图如下:请画该图的最小生成树,并分别写出从顶点1出发按深度优先搜索遍历得到的顶点序列和按广度优先搜索遍历等到的顶点序列(设每个顶点邻接表中的结点按顶点序号从大到小链接)。
3.若对一个关键字序列{15,76,41,20,16,28,57,31}进行哈希造表,其哈希函数为H(key)=key%13, 处理冲突的方法为二次探测再散列,探测序列为:H i=(H(key)+d i)%13 d i =12,22,32……解答下列问题:(1)画出该哈希表。
(2)对表中关键字31、20、16进行查找时,所需进行的比较次数各为多少?(3)该哈希表在等概率查找时查找成功的平均查找长度为多少?4. 对序列(Tom, Dot, Simth, Kim, Ege, Ann, Jim, Kit)按字母顺序进行堆排序,画出初始堆及每选出一个排序码后堆的变化。
四、算法设计题(每题10分,30分。
)1.已知整数序列(a1,a2,…a n)按顺序存储,且每个元素是均不相等。
设计把所有正数移到所有的负数前面的算法(要求算法耗费时间和使用辅助空间尽可能的少)。
2.设二叉树中各结点保存的数据均为整数,设计算法判断该树是否为一棵二叉排序树,并说明你设计的算法的正确性。
3. 设计非递归算法,实现二叉树(以二叉链表存储)进行先序遍历。
数据结构与算法设计期末考试复习题1. 数据结构1.1 线性数据结构1. 什么是线性数据结构?请举例说明。
- 线性数据结构是一种数据元素之间存在一对一关系的数据结构,其中数据元素之间是有顺序的。
- 例子:数组、链表、栈、队列。
2. 数组和链表的区别是什么?- 数组是一段连续的存储空间,可以通过索引直接访问任意元素,但插入和删除元素的开销较大。
- 链表是由节点组成的链式存储结构,每个节点存储数据和指向下一个节点的指针,插入和删除元素的开销较小,但访问元素需要遍历链表。
1.2 非线性数据结构1. 什么是非线性数据结构?请举例说明。
- 非线性数据结构是一种数据元素之间存在一对多或多对多关系的数据结构,其中数据元素之间没有固定的顺序。
- 例子:树、图。
2. 二叉树和平衡二叉树有什么区别?- 二叉树是一种每个节点最多有两个子节点的树结构,没有任何平衡性要求。
- 平衡二叉树是一种二叉树,它的左子树和右子树的高度差不超过1,以保持树的平衡性。
2. 算法设计2.1 排序算法1. 冒泡排序是如何工作的?请给出示例。
- 冒泡排序通过不断比较相邻元素并交换位置,将最大(或最小)的元素逐渐“冒泡”到末尾。
- 示例:初始数组:[5, 3, 8, 2, 1]第一轮冒泡:[3, 5, 2, 1, 8]第二轮冒泡:[3, 2, 1, 5, 8]第三轮冒泡:[2, 1, 3, 5, 8]第四轮冒泡:[1, 2, 3, 5, 8]2. 快速排序是如何工作的?请给出示例。
- 快速排序通过选择一个基准元素,将数组分割为两个子数组,其中一个子数组的元素都小于基准元素,另一个子数组的元素都大于基准元素,然后递归地对子数组进行排序。
- 示例:初始数组:[5, 3, 8, 2, 1]选择基准元素:5子数组划分:[3, 2, 1] 5 [8]对左侧子数组递归排序:[1, 2, 3]对右侧子数组递归排序:[8]排序结果:[1, 2, 3, 5, 8]2.2 查找算法1. 二分查找是如何工作的?请给出示例。
《数据结构与算法》期末考试试题及答案一、选择题A、94,32,40,90,80,46,21,691.在逻辑上可以把数据结构分A.P->NE某T=Q->NE某T;FREE(Q);B、32,40,21,46,69,94,90,80成(A)B.Q->NE某T=P;FREE(Q);C21,32,46,40,80,69,90,94A.线性结构和非线性结构D、90,69,80,46,21,32,94,40B.动态结构和静态结构C.Q->NE 某T=P->NE某T;FREE(Q);21.若用冒泡排序对关键字序C.紧凑结构和非紧凑结构D.P->NE某T=S;S->NE某T=P;列(18,16,14,12,10,8)进行从D.内部结构和外部结构2.单链表中各结点之间的地址(C)A.必须连续B.部分必须连续C.不一定连续D.以上均不对3.在一个长度为n的顺序表中向第i个元素(0<i<=n+1)之前插入一个新元素时,需向后移动(B)个元素。
A、n-iB、n-i+1C、n-i-1D、i4.插入和删除操作只能在一端进行的线性表,称为(C)。
A.队列B.线性表C.栈D.循环队列5、队列是仅允许在()进行插入,而在()进行删除。
(A)A.队尾,队首B.队尾,队尾C.队首,队尾D.队首,队首6.链表适合于(A)查找。
A.顺序B.二分C.随机D.顺序或二分7.数据的基本单位是(A)。
A.数据元素B.数据结构C.数据项D.数据对象8.下列哪个不是算法的特性(B)。
A.有穷性B.可数性C.可行性D.确定性9.在表长为n的顺序表中进行线性查找,它的平均查找长度为(B)。
A.ASL=nB.ASL=(n+1)/2C.ASL=n+1D.ASL=log2n10.一个线性表第一个元素的存储地址是320,每个元素的长度为3,则第五个元素的地址是(C)。
A.311B.328C.332D.31311.设front、rear分别为循环双向链表结点的左指针和右指针,则指针P所指的元素是双循环链表L的尾元素的条件是(D)。
《数据结构与算法》复习题一、填空题1、在树形结构中,树根结点没有,其余每个结点有且只有个前驱结点;叶子结点没有,其余每个结点的后续结点数可以任意多个。
2、在图形结构中,每个结点的前驱结点数和后续结点数可以。
3、在一个单链表中删除p所指结点的后继结点时,应执行以下操作:q = p->next;p->next= ;4、稀疏矩阵的压缩存储方式有:和。
5、n个顶点的连通图至少有边。
6、设一棵完全二叉树有700 个结点,则共有个叶子结点。
7、快速排序平均情况下的时间复杂度为。
8、数据的运算最常用的有5 种,它们分别是、、、、。
9、设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5,e6 依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出队的序列是e2,e4,e3,e6,e5,e1 ,则栈的容量至少应该是。
10、已知循环队列的存储空间大小为20,且当前队列的头指针和尾指针的值分别为8和3,且该队列的当前的长度为____。
11、具有n个结点的完全二叉树的深度是。
12、在具有n 个单元的循环队列中,队满时共有个元素。
13、快速排序其最坏情况下的时间复杂度为。
二、选择题1、非线性结构是数据元素之间存在一种:( )A.一对多关系B.多对多关系C.多对一关系D.一对一关系2、数据结构中,与所使用的计算机无关的是数据的()结构;A. 存储B. 物理C. 逻辑D. 物理和存储3、若以{4,5,6,7,8} 作为权值构造哈夫曼树,则该树的带权路径长度为()。
A. 67B. 68C. 69D. 704、将一棵有100 个结点的完全二叉树从根这一层开始,每一层上从左到右依次对结点进行编号,根结点的编号为1,则编号为49 的结点的左孩子编号为()。
A. 98B. 99C. 50D. 485、在线索二叉树中, t 所指结点没有左子树的充要条件是(B )。
A. t->left==NULLB. t->ltag==1C. t17->ltag==1&&t->left==NULLD. 以上都不对6、表达式A*(B+C)/(D-E+F) 的后缀表达式是( C )。
《数据结构与算法》期末练习一选择题1.以下与数据的存储结构无关的术语是(A.循环队列 B.链表 C.D )。
哈希表 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 54 3 24.有关静态链表的叙述: (1) 静态链表既有顺序存储的优点,又有动态链表的优点。
所以,它存取表中第 i 个元素的时间与 i 无关。
(2)静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。
(3) 静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。
以上错误的是( B )A .(1),(2)B.(1)C.(1),(2),(3)D.(2)5.对于有 n 个结点的二叉树 , 其高度为( D )A.nlog 2n B.log2n C.? log2n? |+1D.不确定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)/2D.0E.n28.已知有向图 G=(V,E),其中 V={V1,V 2,V 3,V 4,V 5,V 6,V 7} ,E={<V1,V 2>, <V1,V 3>, <V1,V 4 >, <V2,V 5>, <V3,V 5>, <V3,V 6>, <V4,V 6>,<V5,V 7>, <V6,V 7>},G 的拓扑序列是( A )。
《数据结构与算法》2015-2016学年第1学期考试复习题一、 选择题(下面各小题有一个正确答案,请将正确答案的编号填写在各小题的括号内)。
1、在一棵具有5层的满二叉树中结点总数为( A )。
A) 31 B )32 C )33 D )162、串的逻辑结构与( D )的逻辑结构不相同。
A )线性表B )栈C )队列D )集合3、下列序列中,执行第一趟快速排序后得到的序列是( )。
A )[d,a,e,d,b]f[h,g] B) [c,e,a,d]f[h,g,b] C) [g,a,e,c,b]f[d,h] D) [a,b,c,d,]f[e,g,h] 4、n 个顶点的强连通图至少有( D )条边。
A )nB )n+1C )n-1D )n(n-1) 5、数据结构中,在逻辑上可以把数据结构分成( B )。
A )动态结构和静态结构B )线性结构和非线性结构C )紧凑结构和非紧凑结构D )内部结构和外部结构6、链式存储的存储结构所占存储空间( A )。
A )分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针B )只有一部分,存放结点值C )只有一部分,存储表示结点间关系的指针D )分两部分,一部分存放结点值,另一部分存放结点所占单元数7、有一个有序表{1,4,6,10,18,35,42,53,67,71,78,84,92,99}。
当用二分查找法查找键值为84的结点时,经( A )比较后查找成功。
A) 4 B)3 C)2 D)128、设单链表中指针p 指向结点m ,若要删除m 之后的结点(若存在),则需修改指针的操作为( A )。
A )p->next=p->next->next;B ) p=p->next;C )p=p->next->next;D ) p->next=p;9、n 个顶点,e 条边的有向图的邻接矩阵中非零元素有( C )个。
A )n B )2e C )e D ) n+e 10、对下图V4的度为( C )。
A )1B )2C )3D )411、在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为( A )。
A )4B )5C )6D )712、在数据结构中,从逻辑上可以把数据结构分为( C )。
A )动态结构和静态结构B )紧凑结构和非紧凑结构C )线性结构和非线性结构D )内部结构和外部结构13、用一维数组A 进行顺序存储时,若起始地址为loc(A1),元素长度为c ,则A 的第i 个数组单元在存放地址loc(Ai),等于( B )。
A )loc(A1)+i*cB )loc(A1)+(i-1)*cC )loc(A1)+i*c+1D )loc(A1)+(i+1)*c 14、( C )在进行插入操作时,常产生假溢出现象。
A )顺序栈B )循环队列C )顺序队列D )链队列 15、某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( D )存储方式最节省运算时间。
A) 单链表 B) 仅有头指针的单循环链表 C) 双链表 D) 仅有尾指针的单循环链表 16、向一个栈顶指针为hs 的链栈中插入一个s 结点时,应执行( C )。
A) hs->next=s; B) s->next=hs->next; hs->next=s; C) s->next=hs; hs=s; D) s->next=hs; hs=hs->next; 17、在一个链队列中,假定front 和rear 分别为队首和队尾指针,则删除一个结点的操作为( B )。
A) rear=rear->next; B) front=front->next;C) rear=front->next; D) front=rear->next ; 18、已知栈的最大容量为4。
若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为( C )。
A) 5,4,3,2,1,6 B) 2,3,5,6,1,4 C) 3,2,5,4,1,6 D) 1,4,6,5,2,319、已知广义表L=((x,y,z),a,(u,t,w)),从L 表中取出原子项t 的操作是( D )。
A) Head(Head(Tail(Tail(L)))) B) Tail(Head(Head(Tail(L)))) C) Head(Tail(Head(Tail(L))))D)Head(Tail(Head(Tail(Tail(L)))))20、下列各种数据结构中属于线性结构的有()。
A)栈 B) 二叉树C) 广义表 D) 图21、倘若在对串的插入、删除运算中,期望运算速度最快,则应采用()。
A)顺序表示法 B)单字符为结点的单链表表示法C)等量分块表示法 D)不等量分块表示法22、广义表head(((a,b),(c,d)))的运算结果为( D )。
A)(a,b) B)(c,d)C)空表 D)((a,b),(c,d))23、 n个顶点的图的最小生成树必定(),是不正确的描述。
A)不唯一 B)权的总和唯一C)不含回路 D)有n条边24、采用链结构存储线性表时,其地址( B )。
A)必须是连续的 B)连续不连续都可以C)部分地址必须是连续 D)必须是不连续的25、队列的操作的原则是(B )。
A)先进先出 B) 后进先出C) 只能进行插入 D) 只能进行删除26、以下属于A) 存储密度大B) 插入运算方便C)删除运算方便D)可方便地用于各种逻辑结构的存储表示27、数据结构研究的内容是( D )。
A)数据的逻辑结构 B)数据的存储结构C)建立在相应逻辑结构和存储结构上的算法 D)包括以上三个方面28、在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s 结点,则须执行( A )。
A)q->next=s; s->next=p; B)s->next=p->next; p->next=s; C)p->next=s->next; s->next=p D)p->next=s; s->next=q; 29、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。
A)顺序表B)双链表C)带头结点的双循环链表D)单循环链表30、下面关于线性表的叙述中,错误的是哪一个?()A)线性表采用顺序存储,必须占用一片连续的存储单元。
B)线性表采用链接存储,便于插入和删除操作。
C)线性表采用链接存储,不必占用一片连续的存储单元。
D)线性表采用顺序存储,便于进行插入和删除操作。
31、在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为()。
A)top不变 B)top=0 C)top-- D)top++32、在一个链队列中,假定front和rear分别为队首和队尾指针,则插入一个结点的操作为()。
A)front=front->next; B) rear=rear->next;C) rear=front->next; D) front=rear->next ;33、设有一个栈,元素的进栈次序为A, B, C, D, E,下列是不可能的出栈序列是( D )。
A) A, B, C, D, EB) B, C, D, E, AC) E, A, B, C, DD) E, D, C, B, A34、广义表A=(A,B,(C,D),(E,(F,G))),则head(tail(head(tail(tail(A)))))=()。
A) (G) B) (D) C) C D) D35、设给定问题的规模为变量n,解决该问题的算法所需时间为Tn=O(f(n)),Tn 表示式中记号O表示()。
A)一个数量级别 B)一个平均值C)一个最大值 D)一个均方值36、线性表的链接实现有利于()运算。
A)插入 B)读元素C)查找 D)定位37、串的逻辑结构与( C )的逻辑结构不同。
A)线性表 B)栈C)队列 D)树38、下面程序段的时间复杂度是( )。
s =0;for( i =0; i<n; i++)for(j=0;j<n;j++)s +=B[i][j];sum = s ;A) O(n2) B) O(n)C) O(m*n) D)O(1)39、二叉树第i(i≥1)层上至多有()结点。
A)2i B)2i C)2i-1 D)2i-140、设单链表中指针p指着结点A,若要删除A之后的结点(若存在),则需要修改指针的操作为()。
A)p->next=p->next->next B)p=p->nextC)p=p->nexe->next D)p->next=p41、设一数列的顺序为1,2,3,4,5,6,通过栈结构不可能排成的顺序数列为()。
A)3,2,5,6,4,1 B)1,5,4,6,2,3C)2,4,3,5,1,6 D)4,5,3,6,2,142、若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点的个数是( )。
A)9 B)11 C)15 D)不能确定43、对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作,直到子序列为空或只剩一个元素为止。
这样的排序方法是()。
A)直接选择排序 B)直接插入排序C)快速排序 D)起泡排序44、设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一个元素,其存储地址为1,每元素占1个地址空间,则a85的地址为()。
A)13 B)33 C)18 D)4045、如果结点A有3个兄弟,而且B为A的双亲,则B的度为()。
A)3 B)4 C)5 D)146、线索二叉树中某结点D,没有左孩子的条件是()。
A)D->Lchild=Null B) D->ltag=1C) D->Rchild=Null D) D->ltag=047、栈进行插入和删除操作的特点是()。
A)LIFO B)FIFOC)FCFS D)HPF48、与无向图相关的术语有()。
A)强连通图 B)入度C)路径 D)弧49、 n个顶点的图的最小生成树必定(),是不正确的描述。
A)不唯一 B)权的总和唯一C)不含回路 D)有n条边50、若采用邻接矩阵法存储一个n个顶点的无向图,则该邻接矩阵是一个()。
A)上三角矩阵 B) 稀疏矩阵C) 对角矩阵 D) 对称矩阵51、采用链结构存储线性表时,其地址()。
A)必须是连续的 B)连续不连续都可以C)部分地址必须是连续 D)必须是不连续的52、栈进行插入和删除操作的特点是()。