数据结构与算法分析_六套期末复习题(含答案)

合集下载

数据结构与算法期末考试复习试题

数据结构与算法期末考试复习试题

《数据结构与算法》复习题一、选择题。

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. 执行算法所需要的内存大小答案: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. 问题描述:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

答案:可以使用哈希表来解决此问题。

首先初始化一个空的哈希表,然后遍历数组中的每个元素。

对于每个元素,首先计算目标值与当前元素的差值,然后在哈希表中查找该差值。

如果找到了该差值,则说明存在两个数的和等于目标值,返回这两个数的下标;否则,将当前元素插入到哈希表中。

时间复杂度为O(n),其中n为数组的长度。

2. 问题描述:给定一个字符串,找出其中不含重复字符的最长子串的长度。

答案:可以使用滑动窗口来解决此问题。

维护一个窗口,其中包含没有重复字符的子串。

遍历字符串中的每个字符,如果该字符不在窗口中,将其加入窗口;如果该字符在窗口中,移动窗口的左边界直到窗口中不包含重复字符。

记录窗口的最大长度。

时间复杂度为O(n),其中n为字符串的长度。

3. 问题描述:给定一个字符串和一个单词列表,找出字符串中可以由单词列表中的单词组成的所有子串的起始位置。

答案:可以使用滑动窗口和哈希表来解决此问题。

首先统计单词列表中每个单词的出现次数。

然后遍历字符串中的每个位置作为子串的起始位置,维护一个滑动窗口。

在窗口中依次取出长度和单词列表中单词总长度相等的子串,在哈希表中统计子串中每个单词出现的次数。

如果窗口中的子串与单词列表中的单词出现次数一致,则记录该子串的起始位置。

时间复杂度为O(n*m),其中n为字符串的长度,m为单词列表中的单词个数。

4. 问题描述:给定一个无序的整数数组,找出其中缺失的第一个正整数。

答案:可以使用原地哈希表来解决此问题。

遍历数组中的每个元素,将每个正整数放到数组中对应的位置上。

遍历数组中的每个元素,如果该位置上的数不等于数组索引加一,则该索引加一即为缺失的第一个正整数。

时间复杂度为O(n),其中n为数组的长度。

5. 问题描述:给定一个字符串s,找到s中最长的回文子串。

答案:可以使用动态规划来解决此问题。

数据结构与算法复习题库含答案

数据结构与算法复习题库含答案

数据结构复习题第一章概论一、选择题1、研究数据结构就是研究( D )。

A. 数据的逻辑结构B. 数据的存储结构C. 数据的逻辑结构和存储结构D. 数据的逻辑结构、存储结构及其基本操作2、算法分析的两个主要方面是( A )。

A. 空间复杂度和时间复杂度 B. 正确性和简单性C. 可读性和文档性 D. 数据复杂性和程序复杂性3、具有线性结构的数据结构是( D )。

A. 图B. 树C. 广义表D. 栈4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、( B )等5个特性。

A. 可执行性、可移植性和可扩充性B. 可执行性、有穷性和确定性C. 确定性、有穷性和稳定性D. 易读性、稳定性和确定性5、下面程序段的时间复杂度是( C )。

fori0;im;i++forj0;jn;j++a[i][j]i*j;A. Om2B. On2C. Om*nD. Om+n6、算法是( D )。

A. 计算机程序B. 解决问题的计算方法C. 排序算法D. 解决问题的有限运算序列7、某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示( C )。

A. OnB. Onlog2nC. On2D. Olog2n8、下面程序段的时间复杂度为( C )。

i1;whileinii*3;A. OnB. O3nC. Olog3nD. On39、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的( B )和运算等的学科。

A. 结构B. 关系C. 运算D. 算法10、下面程序段的时间复杂度是( A )。

is0;whilesni++;s+i;A. OnB. On2C. Olog2nD. On311、抽象数据类型的三个组成部分分别为( A )。

A. 数据对象、数据关系和基本操作B. 数据元素、逻辑结构和存储结构C. 数据项、数据元素和数据类型D. 数据元素、数据结构和数据类型12、通常从正确性、易读性、健壮性、高效性等4个方面评价算法的质量,以下解释错误的是(D)。

数据结构与算法期末考试题及答案

数据结构与算法期末考试题及答案

数据结构与算法期末考试题及答案一、选择题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。

注意:本试卷中所有题目的答案必须以书面形式给出,编程题需要提供完整的代码实现。

祝各位考生考试顺利,取得优异成绩。

《数据结构》期末考试试卷试题及答案

《数据结构》期末考试试卷试题及答案

《数据结构》期末考试试卷试题及答案一、选择题(每题5分,共20分)1. 下列哪个不是线性结构?A. 栈B. 队列C. 图D. 数组2. 下列哪个不是栈的基本操作?A. 入栈B. 出栈C. 查找D. 判断栈空3. 下列哪个不是队列的基本操作?A. 入队B. 出队C. 查找D. 判断队列空4. 下列哪个不是图的基本概念?A. 顶点B. 边C. 路径D. 环二、填空题(每题5分,共20分)5. 栈是一种______结构的线性表,队列是一种______结构的线性表。

6. 图的顶点集记为V(G),边集记为E(G),则无向图G=(V(G),E(G)),有向图G=(______,______)。

7. 树的根结点的度为______,度为0的结点称为______。

8. 在二叉树中,一个结点的左子结点是指______的结点,右子结点是指______的结点。

三、简答题(每题10分,共30分)9. 简述线性表、栈、队列、图、树、二叉树的基本概念。

10. 简述二叉树的遍历方法。

11. 简述图的存储结构及其特点。

四、算法题(每题15分,共30分)12. 编写一个算法,实现栈的入栈操作。

13. 编写一个算法,实现队列的出队操作。

五、综合题(每题20分,共40分)14. 已知一个无向图G=(V,E),其中V={1,2,3,4,5},E={<1,2>,<1,3>,<2,4>,<3,4>,<4,5>},画出图G,并给出图G的邻接矩阵。

15. 已知一个二叉树,其前序遍历序列为ABDCE,中序遍历序列为DBACE,请画出该二叉树,并给出其后序遍历序列。

答案部分一、选择题答案1. C2. C3. C4. D二、填空题答案5. 后进先出先进先出6. V(G),E(G)7. 0 叶结点8. 左孩子右孩子三、简答题答案9. (1)线性表:一个线性结构,其特点是数据元素之间存在一对一的线性关系。

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

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

“数据结构”期末考试试题一、单选题(每小题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.当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层——调整,直到被调整到——位置为止。

《数据结构与算法》期末练习题(含答案)

《数据结构与算法》期末练习题(含答案)

《数据结构与算法》期末练习一选择题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 )。

数据结构与算法分析-六套期末复习题(含答案)

数据结构与算法分析-六套期末复习题(含答案)

试题一一、单项选择题〔每小题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〕6 D〕8〔5〕由权值分别为3,8,6,2的叶子生成一棵哈夫曼树,它的带权路径长度为〔〕。

A〕11B〕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、BC〕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,zD〕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)___。

数据结构与算法题库(含参考答案)

数据结构与算法题库(含参考答案)

数据结构与算法题库(含参考答案)一、单选题(共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 工作表中。

《数据结构与算法分析》期末试卷B(答案)

《数据结构与算法分析》期末试卷B(答案)

3、试分析稀疏矩阵的存储方式,应该采用什么方式存储,为什么?并说明如下稀疏矩阵应该如何存储,并给出行优先的存储组表。

4、对关键码序列:43,21,68,7,35,49,85,31。

请给出二叉排序树的构建过程。

参考答案一、单项选择题(每小题2分)C B C B A //D D A B C二、简答题(每小题10分)1、答案:1)将顺序队列的存储区假想为是一个头尾相连的圆环,通常把这种特殊结构的队列称为循环队列。

队头、队尾指针加1时从MaxSize-1直接进到0,可用取模(余数)运算实现。

2)在队列的顺序存储结构中,设队头指针为front,队尾指针为rear,队的容量为MaxSize。

当有元素要加入队列时,若rear=MaxSize-1(初始时rear=0),但front不为0 ,即指队列中还有空余的空间,但元素不能进队列,则发生队列的假溢出现象,为解决此问题,引入循环队列。

2、答案:完全二叉树是指叶子结点只能出现在最下一层和次下一层,并且最下一层的叶子结点只分布在左边。

完全二叉树一般采用顺序存储结构,因为顺序存储结构可以节约存储空间,也能够表示出完全二叉树的逻辑关系。

三、算法分析和设计(共20分)1)(8分)答案:将num由十进制转换为r进制,由低到高依次进栈,然后再出栈。

2)定义其结点类public class Node<T> { }(12分);public class Node<T> {T xingming,phone,address;Node<T> next;public Node( ){ next=null; }public Node(T obj1,T obj2,T obj3, Node<T> n){ xingming =obj1; phone =obj2; address =obj3; next=n; }public T getXingming (){ return xingming; }public Node<T> getNext(){ return next; }}四、综合题(每小题10,共40分)1、答案:(15)(48,26,32,73,25,36,45,12,68)初态(15,48)(26,32,73,25,36,45,12,68)(15,26,48)(32,73,25,36,45,12,68)(15,26,32,48)(73,25,36,45,12,68)(15,26,32,48,73)(25,36,45,12,68)(15,25,26,32,48,73)(36,45,12,68)(15,25,26,32,36,48,73)(45,12,68)(15,25,26,32,36,45,48,73)(12,68)(12,15,25,26,32,36,45,48,73)(68)(12,15,25,26,32,36,45,48,68,73)2、参考答案(其中一种答案)3、(10分)答案:1)如果采用二维数组存储稀疏矩阵,浪费大量存储空间存放零元素。

数据结构与算法分析—期末复习题及答案

数据结构与算法分析—期末复习题及答案

数据结构与算法分析—期末复习题及答案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. 解答题请描述并给出示例说明动态规划算法的应用场景。

数据结构期末考试试题(含答案)

数据结构期末考试试题(含答案)

数据结构期末考试试题(含答案)数据结构期末考试试题(含答案)第一题:多项式相加(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)。

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

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

数据结构期末考试真题及答案期末样卷参考答案一.是非题〔每题1分共10分〕1. 线性表的链式存储结构优于顺序存储结构。

F2. 栈和队列也是线性表。

如果需要,可对它们中的任一元素进行操作。

F3.字符串是数据对象特定的线性表。

T4.在单链表P指针所指结点之后插入S结点的操作是:P->next= S ; S-> next = P->next; F5.一个无向图的连通重量是其极大的连通子图。

T 6.邻接表可以表示有向图,也可以表示无向图。

T 7.假设B是一棵树,B′是对应的二叉树。

则B的后根遍历相当于B′的中序遍历。

T8.通常,二叉树的第i层上有2i-1个结点。

F9.对于一棵m阶的B-树,树中每个结点至多有m 个关键字。

除根之外的全部非终端结点至少有ém/2ù个关键字。

F10.对于任何待排序序列来说,快速排序均快于起泡排序。

F二.选择题〔每题2分共28分〕1.在以下排序方法中,〔c 〕方法平均时间复杂度为0(nlogn),最坏情况下时间复杂度为0(n2);〔d 〕方法全部情况下时间复杂度均为0(nlogn)。

a. 插入排序b. 希尔排序c. 快速排序d. 堆排序2. 在有n个结点的二叉树的二叉链表表示中,空指针数为〔 b 〕。

a.不定b.n+1c.nd.n-13. 以下二叉树中,〔a 〕可用于完成符号不等长高效编码。

a.最优二叉树b.次优查找树c.二叉平衡树d.二叉排序树4. 以下查找方法中,〔a 〕适用于查找有序单链表。

a.顺序查找b.二分查找c.分块查找d.哈希查找5. 在顺序表查找中,为防止查找过程中每一步都检测整个表是否查找完毕,可采纳〔 a 〕方法。

a.设置监视哨b.链表存贮c.二分查找d.快速查找6. 在以下数据结构中,〔c 〕具有先进先出特性,〔b 〕具有先进后出特性。

a.线性表b.栈c.队列d.广义表7.具有m个结点的二叉排序树,其最大深度为〔f 〕,最小深度为〔 b 〕。

数据结构期末复习题库(215道)

数据结构期末复习题库(215道)

数据结构期末复习1、算法分析的目的是分析算法的效率以求改进,算法分析的两个主要方面是()——[单选题]A 空间复杂性和时间复杂性B 正确性和简明性C 可读性和文档性D 数据复杂性和程序复杂性正确答案:A2、两类存储结构为()——[单选题]A 线性结构和非线性结构B 逻辑结构和非逻辑结构C 顺序结构和链式结构D 逻辑结构和物理结构正确答案:C3、计算机算法指的是解决问题的有限运算序列,它必具备输入、输出和()等五个特性。

——[单选题]A 可行性、可移植性和可扩充性B 可行性、确定性和有穷性C 确定性、有穷性和稳定性D 易读性、稳定性和安全性正确答案:B4、在 C 语言中,有一种适用于不同数据类型构成的数据的结构称为()——[单选题]A 结构体B 数组C 变量D 常量正确答案:A5、在定义数组 int a[10]后,需要访问数组中第 3 个元素,正确的是()——[单选题]A a[0]B a[1]C a[2]D a[3]6、分析以下程序段,其时间复杂度为 T(n)=() for( i =0; i<n;i++)For(j=0;j<i;j++) A[i][j] = 0;——[单选题]A O(n)B O(n^2)C O(n^3)D O(1)正确答案:B7、数据元素之间存在一对多的关系,这种数据间的结构属于()——[单选题]A 集合B 线性结构C 树型结构D 图型结构正确答案:C8、有一个结构体及其变量定义如下: struct date{Int year; int month; intday;}birthday;此时要调用变量中的 year,正确的书写格式是()——[单选题]A yearB birthday.yearC date.yearD struct.year正确答案:B9、在数据结构中,从逻辑上可以把数据结构分成()——[单选题]A 动态结构和静态结构B 紧凑结构和非紧凑结构C 线性结构和非线性结构D 内部结构和外部结构正确答案:C10、分析下面算法(程序段),该算法的时间复杂度 T(n)=() for (i=0;i<n;i++)For (j=0;j<n; j++) A[i][j]=0;——[单选题]A O(n)B O(n^2)C O(n^3)D O(1)11、当定义一个结构体变量时,系统为它分配的内存空间是()——[单选题]A 结构体中一个成员所需的内存容量B 结构体中第一个成员所需的内存容量C 结构体中占内存容量最大者所需的容量D 结构体中各成员所需内存容量之和正确答案:D12、分析以下程序段,其时间复杂度为 T(n)=() x=0;For(i=1;i<n;i++);for(j=1;j<n;j++);For(k=1;k<n;k++); x++;——[单选题]A O(n)B O(n^2)C O(n^3)D O(1)正确答案:A13、有结构体定义及结构体类型数组如下: struct worklist{Int no;Char name[20]; char sex;}person[5];需要给结构体数组中第 2 个变量的 no 成员赋值为 5,正确的写法是()——[单选题]A no=5;B person.no=5;C person[2].no=5;D person[1].no=5;正确答案:D14、分析以下程序段,其时间复杂度为 T(n)=() i=1;While(i<=n) i=3*i;——[单选题]A O(n)B O(n^2)C O(n^3)D O(1)正确答案:D15、线性表是具有 n 个()的有限序列。

《数据结构与算法》期末考试试题及答案

《数据结构与算法》期末考试试题及答案

《数据结构与算法》期末考试试题及答案一、选择题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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

试题一一、单项选择题(每小题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)6 D)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},试写出堆顶元素最小的初始堆。

三、(本题8分)一棵二叉树的先序、中序和后序序列分别如下,其中有一部分未显示出来。

试求出空格处的内容,并画出该二叉树。

先序序列: B F ICEH G中序序列:D KFIA EJC后序序列:K FBHJ G A四、(每小题2分,共8分)设有序列:w={23,24,27,80,28},试给出:(1)二叉排序树;(2)哈夫曼树;(3)平衡二叉树;(4)对于增量d=2按降序执行一遍希尔排序的结果。

五、(本题15分)假设二叉树中每个结点所含数据元素均为单字母,以二叉链表为存储结构,试编写算法按如下图所示的树状显示二叉树。

【答案】==================================一、单项选择题(1)B (2)D (3)A (4)B (5)B(6)C (7)A (8)C (9)B (10)B二、(本题8分)所构造的堆如下图所示:三、(本题8分)在先序序列空格中依次填ADKJ,中序中依次填BHG,后序中依次填DIEC。

四、(每小题2分,共8分)(1)二叉排序树如下图所示:(2)哈夫曼树如下图所示:(3)平衡二叉树如下图所示:(4)对于增量d=2按降序执行一遍希尔排序的结果:28,80,27,24,23五、(本题15分)从上图来看,二叉树的第一层显示在第一列,第二层显示在第二列,第三层显示在第三列;每行显示一个结点,从上至下是先显示右子树,再显示根,最后最左子树,也就是以先遍历右子树,最后遍历左子树的中序遍历次序显示各结点。

C语言版测试程序见exam1\10c,具体算当如下:void DisplayBTWithTreeShape(BiTree T,int level=1)// 按树状形式显示二叉树,level为层次数,可设根结点的层次数为1{if(T){ //空树不显式,只显式非空树DisplayBTWithTreeShape(T->rchild,level+1); //显示右子树cout<<endl; //显示新行for(int i=0;i<level-1;i++)cout<<" "; //确保在第level列显示结点cout<<T->data; //显示结点DisplayBTWithTreeShape(T->lchild,level+1); //显示左子树}}=========================================================================试题二一、单项选择题(每小题2分,共20分)(1)设Huffman树的叶子结点数为m,则结点总数为()。

A)2m B)2m-1C)2m+1 D)m+1(2)若顺序存储的循环队列的QueueMaxSize=n,则该队列最多可存储()个元素。

A)n B)n-1C)n+1 D)不确定(3)下述哪一条是顺序存储方式的优点?()A)存储密度大B)插入和删除运算方便C)获取符合某种条件的元素方便 D)查找运算速度快(4)设有一个二维数组A[m][n],假设A[0][0]存放位置在600(10),A[3][3]存放位置在678(10),每个元素占一个空间,问A[2][3](10)存放在什么位置?(脚注(10)表示用10进制表示,m>3)()。

A)658 B)648 C)633 D)653(5)下列关于二叉树遍历的叙述中,正确的是()。

A)若一个叶子是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序遍历最后一个结点B)若一个结点是某二叉树的前序遍历最后一个结点,则它必是该二叉树的中序遍历的最后一个结点C)若一个结点是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序最后一个结点D)若一个树叶是某二叉树的前序最后一个结点,则它必是该二叉树的中序遍历最后一个结点(6)k层二叉树的结点总数最多为()。

A)2k-1B)2k+1 C)K-1 D)k-1(7)对线性表进行二分法查找,其前提条件是()。

A)线性表以链接方式存储,并且按关键码值排好序B)线性表以顺序方式存储,并且按关键码值的检索频率排好序C)线性表以顺序方式存储,并且按关键码值排好序D)线性表以链接方式存储,并且按关键码值的检索频率排好序(8)对n个记录进行堆排序,所需要的辅助存储空间为()。

A)O(1og2n) B)O(n)C)O(1) D)O(n2)(9)对于线性表(7,34,77,25,64,49,20,14)进行散列存储时,若选用H(K)=K%7作为散列函数,则散列地址为0的元素有()个。

A)1 B)2 C)3 D)4(10)下列关于数据结构的叙述中,正确的是()。

A)数组是不同类型值的集合B)递归算法的程序结构比迭代算法的程序结构更为精炼C)树是一种线性结构D)用一维数组存储一棵完全二叉树是有效的存储方法二、(本题8分)假定一棵二叉树广义表表示为a(b(c),d(e,f)),分别写出对它进行先序、中序、后序、按层遍历的结果。

三、(本题8分)树有哪些遍历方法?它们分别对应于把树转变为二叉树的哪些遍历方法?四、(本题8分)设有数组A[-1:3,0:6,-2:3],按行为主序存放在2000开始的连续空间中,如元素的长度是5,试计算出A[1,1,1]的存储位置。

五、(本题8分)设有一个输入数据的序列是{ 46, 25, 78, 62, 12, 80 }, 试画出从空树起,逐个输入各个数据而生成的二叉搜索树。

六、(本题15分)以二叉链表作存储结构,试编写计算二叉树中叶子结点数目的递归算法。

【答案】==================================一、单项选择题(每小题2 分,共20分)(1)B (2)B (3)A (4)D (5)A(6)A (7)C (8)C (9)D (10)D二、(本题8分)先序:a,b,c,d,e,f中序:c,b,a,e,d,f后序:c,b,e,f,d,a按层:a,b,d,c,e,f遍历序列为:abedc。

三、(本题8分)树的遍历方法有先根序遍历和后根序遍历,它们分别对应于把树转变为二叉树后的先序遍历与中序遍历方法。

四、(本题8分)A[1,1,1]的存储位置=2000+((1-(-1))*(6-0+1)*(3-(-2)+1)+(1-0)*(3-(-2)+1)+(1-(-2)))*5=2465。

五、(本题8分)六、(本题15分)本题只要在遍历二叉树的过程序中对叶子结点进行记数即可。

C语言版测试程序见exam2\10c,具体算当如下:long LeafCount(BiTree T)// 计算二叉树中叶子结点数目{if(T==NULL)return 0; //空树返回0else if(T->lchild==NULL&&T->rchild==NULL)return 1; //只有一个结点的树返回1else//叶子结点数为左右子树的叶子结点数之和return LeafCount(T->lchild)+LeafCount(T->rchild);}试题三一、单项选择题(每小题2分,共20分)(1)对一个算法的评价,不包括如下()方面的内容。

A)健壮性和可读性B)并行性C)正确性D)时空复杂度(2)在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行()。

A)p->next=HL->next; HL->next=p B)p->next=HL; HL=pC)p->next=HL; p=HL D)HL=p; p->next=HL(3)对线性表,在下列哪种情况下应当采用链表表示?()A)经常需要随机地存取元素B)经常需要进行插入和删除操作C)表中元素需要占据一片连续的存储空间D)表中元素的个数不变(4)一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是()。

A)2 3 1 B)3 2 1 C)3 1 2 D)1 2 3(5)每一趟都能选出一个元素放在其最终位置上,并且不稳定的排序算法是()。

A)冒泡排序B)简单选择排序C)希尔排序D)直接插入排序(6)采用开放定址法处理散列表的冲突时,其平均查找长度()。

相关文档
最新文档