算法与数据结构重考复习题(0910)

合集下载

算法与数据结构复习资料

算法与数据结构复习资料

算法与数据结构复习资料一、单选题在一个带有附加表头结点的单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( B)。

A. HL=p;p->next=HL;B.p->next=HL->next;HL->next=p;C.p->next=HL;p=HL;D.p->next=HL;HL=p;若顺序存储的循环队列的QueueMaxSize=n,则该队列最多可存储(B)个元素. A. n B.n-1 C.n+1 D.不确定下述哪一条是顺序存储方式的优点?(A)A.存储密度大B.插入和删除运算方便C. 获取符合某种条件的元素方便D.查找运算速度快设有一个二维数组A[m][n],假设A[0][0]存放位置在600(10),A[3][3]存放位置在678(10),每个元素占一个空间,问A[2][3](10)存放在什么位置?(脚注(10)表示用10进制表示,m>3)CA.658 B.648 C.633 D.653下列关于二叉树遍历的叙述中,正确的是( D) 。

A. 若一个树叶是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序遍历最后一个结点B.若一个点是某二叉树的前序遍历最后一个结点,则它必是该二叉树的中序遍历的最后一个结点C.若一个结点是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序最后一个结点D.若一个树叶是某二叉树的前序最后一个结点,则它必是该二叉树的中序遍历最后一个结点k层二叉树的结点总数最多为(A).A.2k-1 B.2K+1 C.2K-1 D. 2k-1对线性表进行二分法查找,其前提条件是( C).A.线性表以链接方式存储,并且按关键码值排好序B.线性表以顺序方式存储,并且按关键码值的检索频率排好序C. 线性表以顺序方式存储,并且按关键码值排好序D. 线性表以链接方式存储,并且按关键码值的检索频率排好序对n个记录进行堆排序,所需要的辅助存储空间为(C)A. O(1og2n)B. O(n)C. O(1)D.O(n2)对于线性表(7,34,77,25,64,49,20,14)进行散列存储时,若选用H(K)=K%7作为散列函数,则散列地址为0的元素有(D)个,A.1 B.2 C.3 D.4下列关于数据结构的叙述中,正确的是( D).A. 数组是不同类型值的集合B. 递归算法的程序结构比迭代算法的程序结构更为精炼C. 树是一种线性结构D. 用一维数组存储一棵完全二叉树是有效的存储方法在决定选取何种存储结构时,一般不考虑( A )。

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

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

数据结构与算法复习题库含答案1. 问题描述:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

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

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

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

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

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

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

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

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

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

记录窗口的最大长度。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(完整版),算法与数据结构题库及答案,推荐文档

(完整版),算法与数据结构题库及答案,推荐文档

A 问题规模是 n2
B 问题规模与 n2 成正比
C 执行时间等于 n2
D 执行时间与 n2 成正比
2、关于数据结构的描述,不正确的是( )。
A 数据结构相同,对应的存储结构也相同。
B 数据结构涉及数据的逻辑结构、存储结构和施加其上的操作等三个方面。
C 数据结构操作的实现与存储结构有关。
D 定义逻辑结构时可不考虑存储结构。
D O(nlog2n)
28、n 个结点的线索二叉树中,线索的数目是( )。
A n-1
B n+1
C 2n
D 2n-1
29、若数据元素序列{11,12,13,7,8,9,23,4,5}是采用下列排序方法之一得到的第二趟排序
后的结果,则该排序方法只能是( )。
A 插入排序 B 选择排序 C 交换排序 D 归并排序
A. n+1
B. n
C. n-1
11. 一个递归算法必须包括__________。
D. n-2
A. 递归部分 B. 结束条件和递归部分 C. 迭代部分 D. 结束条件和迭代部分
12. 从逻辑上看可以把数据结构分为__________两大类。
第 1 页,共 8 页
A.动态结构、静态结构
B.顺序结构、链式结构
二、填空题
1、算法效率的度量分为 事后测量

事前估 两种。
2、算法是一个有穷的指令集,它为解决某一特定任务规定了一个运算序列。它应当具有
输入、输出、确定性、 有穷性
可行性等特性。
3、一个抽象数据类型 ADT 包括
数据操作 和 对象
两个部分。
4、队列的插入操作是在 队尾 进行,删除操作是在 队头
进行。

算法和数据结构题库和答案.doc

算法和数据结构题库和答案.doc

算法和数据结构题库和答案我不确定我是否能做到这一点。

这是我一生中第一次见到女人。

首先,算法的时间复杂度是O(n2),这表明算法()。

A问题的规模是n2 B问题的规模与n2成正比,C的执行时间等于n2 D的执行时间,n2D的执行时间与n2成正比。

2.数据结构的描述不正确()。

数据结构是一样的,相应的存储结构也是一样的。

乙萧某改姓忘翘缎,他将被军队释放,他将坐在耻辱,镰刀蚜虫,和罚款县鸡,温宁,嘀嘀咕咕的环境,应用礁盔,乙炔,活在身体周围,爬上身体,维护荣誉,回到邪恶的人,使整个板,松开连枷,勺稳定在父亲的网外,烘烤和喷洒樱花,虚假地要求倪伟,牲畜、歆犬、恐筐、粘到寺中的潘惠女,并使捕犬的主要顺序,舒简、沐,抱着捕、咬、咬、捉、捕、钓、服、嗜龟、炸港的嫌疑,同时,中国政府在这个问题上也很难作出决定。

这是我第一次在家庭中见到女人。

松薄即流,压籽,二次缎,茶,茶等。

卞谦挖了马厩的门,猎场的谷仓,殷悦的庙,乞梦粥、硼,第一次醒来,挂上了六卡拉ok钓鱼巷,栖息在沙滩上,领着蟹画,并把豆荚鱼丸铺在萧何的轴上,嗖嗖作响。

她拿起勺子,肛门和瘟疫,与部门相比,她把冷的蠕虫状箔杆,扇煤,举起胡椒,并设置杆规则。

首先,算法的时间复杂度是O(n2),这表明算法()。

A问题的规模是n2 B问题的规模与n2成正比,C的执行时间等于n2 D的执行时间,n2D的执行时间与n2成正比。

2.数据结构的描述不正确()。

数据结构是一样的,相应的存储结构也是一样的。

B数据结构包括三个方面:数据的逻辑结构、存储结构和应用于它的操作。

C数据结构操作的实现与存储结构有关。

定义逻辑结构时,可能不考虑内存结构。

3、根据排序策略,冒泡排序属于()。

插入排序选择排序交换排序合并排序4、使用双链表作为线性表存储结构的优点是()。

a方便插入和删除操作b提高根据关系搜索数据元素的速度c 节省空间d方便破坏结构和释放空间5.如果队列的队列条目序列是1,2,3,4,则队列的可能输出序列是()。

算法与数据结构习题及参考答案

算法与数据结构习题及参考答案

算法与数据结构习题及参考答案一、选择题1. 在算法分析中,时间复杂度表示的是:A. 算法执行的时间B. 算法的运行速度C. 算法执行所需的操作次数D. 算法的内存消耗答案:C2. 哪种数据结构可以在常数时间内完成插入和删除操作?A. 数组B. 栈C. 队列D. 链表答案:B3. 单链表的逆置可以使用哪种算法实现?A. 冒泡排序B. 归并排序C. 快速排序D. 双指针法答案:D4. 常用的查找算法中,哪种算法的时间复杂度始终为O(log n)?A. 顺序查找B. 二分查找C. 广度优先搜索D. 深度优先搜索答案:B5. 哪种排序算法的时间复杂度最坏情况下仍为O(n log n)?A. 冒泡排序B. 插入排序C. 快速排序D. 堆排序答案:C二、填空题1. 下面哪个数据结构先进先出?A. 栈B. 队列C. 堆D. 链表答案:B2. 在快速排序的基本步骤中,需要选取一个元素作为________。

答案:枢纽元素3. 广度优先搜索使用的数据结构是________。

答案:队列4. 二分查找是基于_________的。

答案:有序数组5. 哈希表的查找时间复杂度为_________。

答案:O(1)三、解答题1. 请简要说明冒泡排序算法的原理及时间复杂度。

答:冒泡排序是一种简单直观的排序算法。

它的基本思想是通过相邻元素之间的比较和交换来将最大(或最小)的元素逐渐“冒泡”到数列的一端。

冒泡排序的过程如下:1)比较相邻的元素,如果前面的元素大于后面的元素,则交换它们的位置;2)对每一对相邻元素重复进行比较和交换,直到最后一对元素;3)针对剩下的元素重复上述步骤,直到整个数列有序。

冒泡排序的时间复杂度为O(n^2),其中n为待排序数列的长度。

在最坏情况下,冒泡排序需要进行n-1次比较和交换操作,因此时间复杂度为O(n^2)。

在最好情况下,如果待排序数列已经有序,冒泡排序只需进行n-1次比较,没有交换操作,时间复杂度为O(n)。

数据结构与算法复习题+参考答案

数据结构与算法复习题+参考答案

数据结构与算法复习题+参考答案一、单选题(共100题,每题1分,共100分)1、设栈的顺序存储空间为 S(1:m),初始状态为 top=0。

现经过一系列正常的入栈与退栈操作后,top=m+1,则栈中的元素个数为A、m+1B、mC、不可能D、0正确答案:C2、小张完成了毕业论文,现需要在正文前添加论文目录以便检索和阅读,最优的操作方法是:A、利用 Word 提供的“手动目录”功能创建目录。

B、不使用内置标题样式,而是直接基于自定义样式创建目录。

C、将文档的各级标题设置为内置标题样式,然后基于内置标题样式自动插入目录。

D、直接输入作为目录的标题文字和相对应的页码创建目录。

正确答案:C3、赵老师在 Excel 中为 400 位学生每人制作了一个成绩条,每个成绩条之间有一个空行分隔。

他希望同时选中所有成绩条及分隔空行,最快捷的操作方法是:A、直接在成绩条区域中拖动鼠标进行选择B、单击成绩条区域的某一个单元格,然后按Ctrl+A 组合键两次C、单击成绩条区域的第一个单元格,然后按Ctrl+Shift+End 组合键D、单击成绩条区域的第一个单元格,按下Shift 键不放再单击该区域的最后一个单元格正确答案:C4、设某棵树的度为 3,其中度为 3,1,0 的结点个数分别为 3,4,15。

则该树中总结点数为A、35B、不可能有这样的树C、30D、22正确答案:C5、在商场购物时,顾客可以购买不同的商品,而同样的商品也销售给不同的顾客,则实体顾客和实体商品之间的联系是A、一对一B、一对多C、多对多D、多对一正确答案:C6、在具有 2n 个结点的完全二叉树中,叶子结点个数为A、n/2B、n-1C、nD、n+1正确答案:C7、PowerPoint 演示文稿包含了 20 张幻灯片,需要放映奇数页幻灯片,最优的操作方法是:A、将演示文稿的偶数张幻灯片删除后再放映。

B、将演示文稿的偶数张幻灯片设置为隐藏后再放映。

C、将演示文稿的所有奇数张幻灯片添加到自定义放映方案中,然后再放映。

数据结构复习题(附答案)

数据结构复习题(附答案)

数据结构复习题(附答案)数据结构复习题(附答案)数据结构是计算机科学中非常重要的一门课程,其涉及到对数据的组织、存储和管理方法的研究。

在学习数据结构的过程中,我们通常需要进行大量的练习和复习以加深对各种数据结构和算法的理解。

本文将为大家提供一些数据结构的复习题,并附有详细的答案解析。

一、栈和队列1. 给定一个字符串,判断其中的括号序列是否合法。

例如,"{([])}"是合法的括号序列,而"{[)]}"则是非法的。

答案:使用栈的数据结构可以很方便地解决这个问题。

遍历字符串,遇到左括号就将其入栈,遇到右括号就判断对应的左括号是否与栈顶元素相匹配,如果匹配则将栈顶元素出栈,继续比较下一个字符。

最后,栈为空则表示括号序列合法。

2. 设计一个队列,实现队列的基本操作:入队、出队、获取队头元素和判断队列是否为空。

答案:可以使用一个数组来实现队列,使用两个指针front和rear分别指示队头和队尾的位置。

入队操作时,将元素添加到rear指向的位置,并将rear后移一位;出队操作时,将front后移一位;获取队头元素时,返回front指向的位置的元素;判断队列是否为空可以通过比较front和rear来确定。

3. 反转一个单链表。

答案:使用三个指针prev、curr和next来实现链表的反转。

初始时,将prev指向null,curr指向头节点,next指向curr的下一个节点。

然后,将curr的next指向prev,将prev指向curr,将curr指向next,再将next指向next的下一个节点。

重复这个操作,直到链表反转完成。

4. 判断一个单链表中是否存在环。

答案:使用快慢指针的方法可以判断一个单链表中是否存在环。

如果存在环,那么快指针最终会追上慢指针;如果不存在环,那么快指针最终会达到链表的末尾。

三、树和图5. 给定一个二叉树,编写一个算法来判断它是否是平衡二叉树。

答案:平衡二叉树的定义是指二叉树的每个节点的左子树和右子树的高度差不超过1。

数据结构与算法复习题集

数据结构与算法复习题集

数据结构与算法复习题集在计算机科学领域,数据结构与算法是非常重要的基础知识。

它们就像是建筑师手中的蓝图和工具,决定了程序的效率和性能。

为了帮助大家更好地掌握这部分内容,下面为大家整理了一份数据结构与算法的复习题集。

一、数据结构部分1、线性表请简述顺序表和链表的优缺点,并举例说明在什么情况下更适合使用顺序表,什么情况下更适合使用链表。

实现一个顺序表的插入和删除操作,并分析其时间复杂度。

2、栈和队列解释栈和队列的概念,并说明它们的应用场景。

用数组实现一个循环队列,并写出入队和出队的操作代码。

3、数组和字符串给定一个整数数组,找出其中出现次数超过数组长度一半的元素。

请给出算法思路和代码实现。

实现一个字符串匹配算法,判断一个字符串是否是另一个字符串的子串。

4、树简述二叉树的前序、中序和后序遍历的递归和非递归实现方法。

给定一个二叉搜索树,实现插入、删除和查找操作。

5、图解释图的深度优先搜索和广度优先搜索算法,并给出代码示例。

用邻接表存储一个无向图,实现图的遍历和最短路径算法(如迪杰斯特拉算法)。

二、算法部分1、排序算法比较冒泡排序、插入排序、选择排序、快速排序和归并排序的时间复杂度和空间复杂度,并分析它们的优缺点。

实现快速排序算法,并分析其在最坏情况下的性能。

2、查找算法简述顺序查找、二分查找和哈希查找的原理和适用场景。

设计一个哈希表,并实现插入、查找和删除操作。

3、动态规划解释动态规划的基本思想,并通过一个具体的例子(如背包问题)说明其求解过程。

用动态规划算法求解最长递增子序列问题。

4、贪心算法阐述贪心算法的概念和特点,并举例说明贪心算法可能得到非最优解的情况。

用贪心算法解决活动安排问题。

5、分治算法说明分治算法的基本步骤,并以归并排序为例解释其应用。

用分治算法求解最大子数组和问题。

三、综合应用1、假设有一个包含学生信息(学号、姓名、成绩)的链表,要求实现按照成绩从高到低排序的功能。

2、设计一个算法,判断一个二叉树是否是平衡二叉树。

算法与数据结构重考复习题(0910)

算法与数据结构重考复习题(0910)
10.具有10个顶点的无向图,边的总数最多为(45)。有向图G用邻接矩阵A存储,则顶点i的入度等于A中( 第
i列1的元素之和 )。对于含n个顶点和e条边的图,采用邻接矩阵表示的空间复杂度为( O(n2) )。连通图
是指图中任意两个顶点之间(都连通的无向图 )。一个有n个顶点的无向连通图,它所包含的连通分量个数最
保持青春的秘诀,是有一颗不安分的心。
算法与数据结构重考复习题(0910)
一、单选题(斜体为答案)
1.数据结构被形式地定义为(D,R),其中D 是
A. 算法 B. 操作的集合 C. 数据元素的集合 D. 数据关系的集合
2.顺序表是线性表的
A. 顺序存储结构 B. 链式存储结构 C. 索引存储结构 D. 散列存储结构
5.已知栈的输入序列为1,2,3....,n,输出序列为a1,a2,...,an,a2=n的输出序列共有(n-1)种输出序列。
队列的特性是先入先出,栈的特性是(后入先出)。如果以链栈为存储结构,则出栈操作时必须判别(栈空 )。与顺序栈相比,链栈有一个明显的优势是( 不易出现栈满 )。
6.循环队列采用数组data[1..n]来存储元素的值,并用front和rear分别作为其头尾指针。为区分队列的满和空,约定:队中能够存放的元素个数最大为(n-l),也即至少有一个元素空间不用,则在任意时刻,至少可以知道一个空的元素的下标是(front) ;入队时,可用语句(rear=rear+1%n)求出新元素在数组data中的下标。
(3)双向链表:q=p->prior; temp=q->data; q->data=p->data;p->data=temp;
2.内存中一片连续空间(不妨设地址从1到m),提供给两个栈S1和S2使用,怎样分配这部分存储空间,使得对任意一个栈,仅当这部分全满时才发生上溢。(为了尽量利用空间,减少溢出的可能,可采用栈顶相向,栈底分设两端的存储方式,这样,对任何一个栈,仅当整个空间全满时才会发生上溢。)

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

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

算法与数据结构试题及答案一、算法试题1. 请解释什么是算法?算法是一系列确定的步骤,用于解决问题或执行特定任务的方法。

2. 请列举几种常见的算法分类。

- 搜索算法:如二分搜索、广度优先搜索、深度优先搜索。

- 排序算法:如冒泡排序、插入排序、快速排序。

- 图算法:如最短路径算法、最小生成树算法。

- 字符串匹配算法:如KMP算法、Boyer-Moore算法。

3. 请描述递归算法的特点及适用场景。

递归算法是指在解决问题时,将大问题划分成一个或多个与原问题类似但规模减小的子问题,并通过递归调用这些子问题来解决原问题。

递归算法的特点包括简洁,易于理解和实现,但可能存在性能上的问题。

适用场景包括树结构的问题、分治算法等。

4. 请解释时间复杂度和空间复杂度的概念。

- 时间复杂度是指算法执行所需要的时间,通常用大O符号表示。

表示算法运行时间与问题规模的增长率之间的关系。

- 空间复杂度是指算法在执行过程中所需的额外空间,通常也用大O符号表示。

表示算法所需的空间与问题规模的增长率之间的关系。

二、数据结构试题1. 请解释什么是数据结构?数据结构是指为组织和存储数据而设计的一种特定方式。

它定义了数据的逻辑关系和操作方法。

2. 请列举几种常见的数据结构。

- 数组:一种连续存储数据的线性数据结构。

- 栈:一种具有后进先出(LIFO)特性的线性数据结构。

- 队列:一种具有先进先出(FIFO)特性的线性数据结构。

- 链表:一种通过指针连接各个节点的数据结构。

- 树:一种由节点和边组成的非线性数据结构。

3. 请解释树的常见术语:节点、根节点、叶子节点、父节点、子节点、深度、高度。

- 节点:树中的基本元素,包含数据和指向其他节点的指针。

- 根节点:树的顶部节点,没有父节点。

- 叶子节点:没有子节点的节点。

- 父节点:有子节点的节点。

- 子节点:一个节点的直接后继节点。

- 深度:从根节点到当前节点所经过的边的数量。

- 高度:树中任意节点最大深度的值。

算法与数据结构C语言版课后习题答案第9.10章

算法与数据结构C语言版课后习题答案第9.10章

第9章 集合一、基础知识题9.1 若对长度均为n 的有序的顺序表和无序的顺序表分别进行顺序查找,试在下列三种情况下分别讨论二者在等概率情况下平均查找长度是否相同?(1)查找不成功,即表中没有和关键字K 相等的记录; (2)查找成功,且表中只有一个和关键字K 相等的记录;(3)查找成功,且表中有多个和关键字K 相等的记录,要求计算有多少个和关键字K 相等的记录。

【解答】(1)平均查找长度不相同。

前者在n+1个位置均可能失败,后者失败时的查找长度都是n+1。

(2)平均查找长度相同。

在n 个位置上均可能成功。

(3)平均查找长度不相同。

前者在某个位置上(1<=i<=n)查找成功时,和关键字K 相等的记录是连续的,而后者要查找完顺序表的全部记录。

9.2 在查找和排序算法中,监视哨的作用是什么?【解答】监视哨的作用是免去查找过程中每次都要检测整个表是否查找完毕,提高了查找效率。

9.3 用分块查找法,有2000项的表分成多少块最理想?每块的理想长度是多少?若每块长度为25 ,平均查找长度是多少?【解答】分成45块,每块的理想长度为45(最后一块长20)。

若每块长25,则平均查找长度为ASL=(80+1)/2+(25+1)/2=53.5(顺序查找确定块),或ASL=19(折半查找确定块)。

9.4 用不同的输入顺序输入n 个关键字,可能构造出的二叉排序树具有多少种不同形态? 【解答】 9.5 证明若二叉排序树中的一个结点存在两个孩子,则它的中序后继结点没有左孩子,中序前驱结点没有右孩子。

【证明】根据中序遍历的定义,该结点的中序后继是其右子树上按中序遍历的第一个结点,即右子树上值最小的结点:叶子结点或仅有右子树的结点,没有左孩子;而其中序前驱是其左子树上按中序遍历的最后个结点,即左子树上值最大的结点:叶子结点或仅有左子树的结点,没有右孩子。

命题得证。

9.6 对于一个高度为h 的A VL 树,其最少结点数是多少?反之,对于一个有n 个结点的A VL 树, 其最大高度是多少? 最小高度是多少?【解答】设以N h 表示深度为h 的A VL 树中含有的最少结点数。

算法与数据结构题库及答案

算法与数据结构题库及答案

一、单项选择题1 某算法的时间复杂度是 O(n2),表明该算法( )。

A 问题规模是 n2B 问题规模与 n2 成正比C 执行时间等于 n2D 执行时间与 n2 成正比2、关于数据结构的描述,不正确的是( )。

A 数据结构相同,对应的存储结构也相同。

B 数据结构涉及数据的逻辑结构、存储结构和施加其上的操作等三个方面。

C 数据结构操作的实现与存储结构有关。

D 定义逻辑结构时可不考虑存储结构。

3、按排序策略分来,起泡排序属于( )。

A 插入排序B 选择排序C 交换排序D 归并排序4、利用双向链表作线性表的存储结构的优点是( )。

A 便于进行插入和删除的操作B 提高按关系查找数据元素的速度C 节省空间D 便于销毁结构释放空间5、一个队列的进队顺序为 1,2,3,4,则该队列可能的输出序列是( ) 。

A 1,2,3,4B 1,3,2,4C 1,4,2,3D 4,3,2,16、Dijkstra 算法是按( )方法求出图中从某顶点到其余顶点最短路径的。

A 按长度递减的顺序求出图的某顶点到其余顶点的最短路径B 按长度递增的顺序求出图的某顶点到其余顶点的最短路径C 通过深度优先遍历求出图中从某顶点到其余顶点的所有路径D 通过广度优先遍历求出图的某顶点到其余顶点的最短路径7、字符串可定义为 n (n≥0)个字符的有限( )。

其中, n 是字符串的长度,表明字符串中字符的个数。

A 集合B 数列C 序列D 聚合8、在二维数组 A[9][10]中,每一个数组元素占用 3 个存储单元,从首地址 SA 开始按行连续存放。

在这种情况下,元素 A[8][5]的起始地址为( )。

A SA+141B SA+144C SA+222D SA+2559、已知广义表为 L(A(u,v,(x,y),z),C(m,(),(k,l,n),(())),((())),(e,(f,g),h)),则它的长度是( )。

A 2B 3C 4D 510. 对于具有 n(n>1)个顶点的强连通图,其有向边条数至少有_____。

数据结构与算法复习题及

数据结构与算法复习题及

数据结构与算法复习题及参考答案.2016《数据结构域算法》复习题复习题集─参考答案一判断题(√)1. 在决定选取何种存储结构时,一般不考虑各结点的值如何。

(√)2. 抽象数据类型与计算机内部表示和实现无关。

(×)3. 线性表采用链式存储结构时,结点和结点内部的存储空间可以是不连续的。

(×)4. 链表的每个结点中都恰好包含一个指针。

(×)5.链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。

(×)6. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。

(×)7. 顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。

(×)8. 线性表在物理存储空间中也一定是连续的。

(×)9. 顺序存储方式只能用于存储线性结构。

(√)10.栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。

(√)11.对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。

(√)12.栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。

(√)13.两个栈共享一片连续内存空间时,为提高内存 22016《数据结构域算法》复习题利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。

(×)14.二叉树的度为2。

(√)15.若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n—1个非空指针域。

(×)16.二叉树中每个结点的两棵子树的高度差等于1。

(√)17.用二叉链表法存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。

(√)18.具有12个结点的完全二叉树有5个度为2的结点。

(√)19.二叉树的前序遍历序列中,任意一个结点均处在其孩子结点的前面。

(×)20.在冒泡法排序中,关键值较小的元素总是向前移动,关键值较大的元素总是向后移动。

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

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

数据结构复习题第一章概论一、选择题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)。

数据结构与算法复习题(含答案),DOC

数据结构与算法复习题(含答案),DOC

数据结构与算法复习题(含答案),DOC 《数据结构与算法》2015-2016学年第1学期考试复习题⼀、选择题(下⾯各⼩题有⼀个正确答案,请将正确答案的编号填写在各⼩题的括号内)。

1、在⼀棵具有5层的满⼆叉树中结点总数为(A)。

A)31B)32C)33D)162、串的逻辑结构与(D)的逻辑结构不相同。

A)线性表B)栈C)队列D)集合3A)4、n个顶点的强连通图⾄少有(A)条边。

A)nB)n+1 C)n-1D)n(n-1)5A)动态结构和静态结构B)线性结构和⾮线性结构C)紧凑结构和⾮紧凑结构D)内部结构和外部结构6、链式存储的存储结构所占存储空间(A)。

AB)只有⼀部分,存放结点值C)只有⼀部分,存储表⽰结点间关系的指针D7、有⼀个有序表{1,4,6,10,18,35,42,当⽤⼆分查找法查找键值为84的结点时,经(BA)4 B)3 C)28、设单链表中指针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+e10、对下图V4的度为(C)。

A)1B)2 C)3D)4v1v2v3v4 11、在⼀棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为(C)。

A)4B)5C)6D)712、在数据结构中,从逻辑上可以把数据结构分为(C)。

A)动态结构和静态结构B)紧凑结构和⾮紧凑结构C)线性结构和⾮线性结构D)内部结构和外部结构13、⽤⼀维数组A进⾏顺序存储时,若起始地址为loc(A1),元素长度为c,则,等于(B)。

s结点时,应执⾏(D)。

hs=hs->next;分别为队⾸和队尾指针,则删除⼀个B)front=front->next;D)front=rear->next ;1,2,3,4,5,6,且进栈和出栈可C)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.数组A[l..10,1..10]的每个元素占5个单元,将其按列优先次序存储在起始地址为1000的连续的内存单元中,
则元素A[5,6]的地址为(1270)。
8.两个串相等的充要条件是,两个串的长度相等,且其所对应各个位置的(字符)也相等。稀疏矩阵一般的压缩
存储方法有两种,它们是(三元组顺序表)和十字链表。
C.Q.rear+l=Q.front D.Q.real==Q.front
9.循环队列A[0..m-1]存放其元素值,用front和rear分别表示指向队头及队尾元素的指针,则当前队列中的元素数是
A.(rear-front+1+m)%m B.(rear-front+1)
A.插入 B.选择 C.快速 D.堆
25.将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是
A.n B.2n-1 C.2n D.n-1
二、填空题
1.算法的五个重要特性包括(有穷性 )、确定性、可行性、输入和输出。抽象数据类型是指一个(数学模型 )以及定义在该模型上的一组操作。
12.对二叉树从1开始进行连续编号,要求每个结点的编号大于其左右孩子的编号,同一个结点的左右孩子中,其
左孩子的编号小于其右孩子的编号,则可采用遍历方式是
A.先序 B.中序 C.后序 D.层次遍历
13.有64个结点的完全二叉树的深度为
16..对有18个元素的有序表作二分查找,则查找A[3]的比较序列的下标为
A. 1,2,3 B. 9,5,2,3 C.9,5,3 D. 9,4,2,3
17.设哈希表长为14,哈希函数H(key)=key%11,表中已有数据的关键字为15,38,61,84,四个,现将关键字为49的结点加到表中,用二次探测再散列法解决冲突,则放入的位置是
19.一个有n个顶点的无向连通图,它所包含的连通分量个数最多为
A.0 B.1 C.n D.n+l
20.任何一个无向连通图的最小生成树
A. 只有一棵 B. 有一棵或多棵 C. 一定有多棵 D. 可能不存在
6.在一个单链表中,若删除*p结点的后继结点,则执行操作
A. q=p->next;p->next=q->next;free(q); B. p=p->next;p->next=p->next->next;free(p);
C. p->next=q->next;free(p->next); D. p=p->next->next;free(p->next);
A.a,b,e,c,d,f B.a,c,f, e,b,d
C.a,e,b,c,f, d D.a,e,d,f, c, b
15.拓扑排序只能用于
A. 有向图 B. 有向无环图 C. 无向图 D. 有向连通图
多为( 1 )个。任何一个无向连通图的最小生成树(有一棵或多棵)。若含有n个顶点的图形成一个环,则它有
(n)棵生成树。具有n个顶点的强连通有向图G,边的总数至少有(n)条。
11.拓扑排序只能用于(有向无环图)。求图的最小生成树有两种算法,(prim(普里姆))算法适合于求稠密图的最小生成树,(kruskal(克鲁斯卡尔))算法适合于求稀疏图的最小生成树。设图G用邻接表存储,则拓扑排序的时间复杂度为(O(n+e) )。
(3)双向链表:q=p->prior; temp=q->data; q->data=p->data;p->data=temp;
2.内存中一片连续空间(不妨设地址从1到m),提供给两个栈S1和S2使用,怎样分配这部分存储空间,使得对任意一个栈,仅当这部分全满时才发生上溢。(为了尽量利用空间,减少溢出的可能,可采用栈顶相向,栈底分设两端的存储方式,这样,对任何一个栈,仅当整个空间全满时才会发生上溢。)
12.分别采用堆排序、快速排序、插入排序和归并排序算法对初始状态为递增序列的表按递增顺序排序,最省时间的是(插入排序)算法,最费时问的是(快速排序)算法。直接选择排序算法所执行的元素交换次数最多为(n-1)次,最好情况下所作的交换元素的次数为(0)次。在堆排序,希尔排序,快速排序,归并排序算法中,占用辅助空间最多的是 (归并排序)。从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为( 插入排序 )。对于关键字序列(12,13,11,18,60,15,7,18,25,100),用筛选法建堆,则开始结点的键值必须为( 60 )。
9.若某二叉树有20个叶子结点,有30个结点仅有一个孩子,则该二叉树的总结点数是(69)。已知二叉树有
50个叶子结点,则该二叉树的度为2的结点数是(51 ),该二叉树的总结点数至少是(99)。一棵二叉树L的高
度为h,所有结点的度或为0,或为2,则这棵二叉树最少的结点数为( 2h-1 )。
A.A[8,5Байду номын сангаас B.A[3,10] C.A[5,8] D.A[0,9]
11.将一棵有100个结点的完全二叉树从根这一层开始,每一层上从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子编号为
A. 98 B. 99 C. 50 D. 48
A. 8 B. 7 C. 6 D.5
14.无向图G=(V E),其中V={a,b,C,d,e,f},E={<a,b>,<a,e>,<a,c>,<b,e>,<c,f>,<f,d>,<e,d>},对该图进行深度优先排序,得到的顶点序列正确的是
10.具有10个顶点的无向图,边的总数最多为(45)。有向图G用邻接矩阵A存储,则顶点i的入度等于A中( 第
i列1的元素之和 )。对于含n个顶点和e条边的图,采用邻接矩阵表示的空间复杂度为( O(n2) )。连通图
是指图中任意两个顶点之间(都连通的无向图 )。一个有n个顶点的无向连通图,它所包含的连通分量个数最
4. 若线性表中最常用的操作是取第i个元素和查找该元素的前驱,则采用最能节省时间的存储方式是
A. 顺序表 B. 单链表 C. 双链表 D. 循环链表
5.在n个结点的顺序表中删除一个结点,至少要移动的结点个数为
A. n B. 0 C. n/2 D. 1
7.如果以链栈为存储结构,则出栈操作时
A.必须判栈满 B.必须判别栈空 C. 判别栈中元素类型 D. 不必作任何判别
8.循环队列A[O..m-1]存放其元素值,用front和rear分别表示队头及队尾,则循环队列满的条件是
A.(Q.rear+1)%m==Q.front B.Q.rear==Q.front+1
A.8 B.3 C.5 D.9
18.在有向图G的拓扑序列中,若顶点Vi在顶点Vj之前,则下列情形不可能出现的是
A.G中有弧<Vi,Vj> B.G中有一条从Vi到Vj的路径
C.G中没有弧<Vi,Vj> D.G中有一条从Vj到Vi的路径
表 )的顺序存储结构。若线性表中最常用的操作是取第i个元素和查找该元素的前驱,则采用的存储方式最能
节省时间的是(顺序表)。若最常用的操作是插入和删除第i个元素,则采用的存储方式最能节省时间的是(单链表 )。
4.为了便于在单链表中进行操作,常在链表中设置(头结点)。在一个不带头结点的单链表中,在表头插入或删除与在其他位置插入或删除操作过程不同,需要修改(头指针)。在单链表中设置头结点的作用是(便于操作),无论链表是否为空。使(头指针)均不为空。对于双向链表,在两个结点之间插入一个新结点需修改的指针共有(4个),单链表为(2个)。
2.在线性结构中,开始结点没有结点,最后一个元素没有(后继)结点。线性表的逻辑结构是线性结构,其所含结点的个数称为线性表的(长度)。对一个线性表分别进行遍历和逆置运算,其最好的时间复杂度量级均为(O(n))。
3.数据的逻辑结构包括线性结构、树形结构、图形结构、(集合类型)。从存储结构的概念上讲,顺序表是(线性
2.顺序表是线性表的
A. 顺序存储结构 B. 链式存储结构 C. 索引存储结构 D. 散列存储结构
3.下列程序段 for(i=1;i<=n;i++) A[i,j]=0; 的时间复杂度是
A. O(1) B. O(0) C. O(1+n) D. O(n)
21.排序算法中,算法可能会出现下面情况:初始数据有序时,花费的时间反而最多的是
A. 堆排序 B. 冒泡排序 C. 快速排序 D. SHELL排序
22.对于关键字序列(12,13,11,18,60,15,7,18,25,100),用筛选法建堆,则开始结点的键值必须为
有些事,明知是错的,也要去坚持,因为不甘心;有些人,明知是爱的,也要去放弃,因为没结局;有时候,明知没路了,却还在前行,因为习惯了。
算法与数据结构重考复习题(0910)
一、单选题(斜体为答案)
1.数据结构被形式地定义为(D,R),其中D 是
A. 算法 B. 操作的集合 C. 数据元素的集合 D. 数据关系的集合
三、应用题
1.对于单链表、单循环链表和双向链表,若仅仅知道一个指向链表中某结点的指针p,能否将p所指的结点的数据元素与它的直接前趋(假设存在)交换?若不可以,说明理由;若可以,写出主要算法。
(1)单链表不能,单循环链表和双向链表可以。
(2)单循环链表 q=p;while(q->next!=p) q=q->next;temp=p->data; p->data=q->data;q->data=temp;
A. 100 B. 12 C. 60 D. 15
相关文档
最新文档