考研资料数据结构试题汇总
数据结构c考研试题及答案

数据结构c考研试题及答案数据结构C考研试题及答案1. 选择题1.1 以下哪个选项不是线性表的顺序存储结构的特点?A. 存储空间连续B. 存储空间不连续C. 可以随机访问D. 插入和删除操作效率低答案:B1.2 在二叉树的遍历中,先访问根节点,然后遍历左子树,最后遍历右子树,这种遍历方式称为:A. 前序遍历B. 中序遍历C. 后序遍历D. 层序遍历答案:A2. 填空题2.1 在一个长度为n的数组中,使用二分查找法查找一个元素,最坏情况下需要比较的次数为______。
答案:log2(n+1)-12.2 哈希表的冲突解决方法有多种,其中一种方法是______。
答案:链地址法3. 简答题3.1 请简述图的深度优先搜索(DFS)算法的步骤。
答案:深度优先搜索算法的步骤如下:1. 访问起始顶点;2. 对于起始顶点的每一个邻接顶点,如果未被访问,则递归地进行深度优先搜索;3. 继续对未访问的邻接顶点进行步骤2,直到所有邻接顶点都被访问;4. 回溯到上一个顶点,继续访问未访问的邻接顶点,直到所有顶点都被访问。
3.2 什么是堆排序算法?请简要描述其工作原理。
答案:堆排序算法是一种基于二叉堆的比较排序算法。
其工作原理如下:1. 将待排序的序列构造成一个大顶堆;2. 将堆顶元素,即当前最大值,与序列末端元素进行交换,然后将序列长度减一;3. 对新的堆顶元素调整为新堆的堆顶;4. 重复步骤2和3,直到堆的大小为1或0。
4. 编程题4.1 编写一个函数,实现单链表的反转。
答案:```cstruct ListNode {int val;struct ListNode *next;};struct ListNode* reverseList(struct ListNode* head) {struct ListNode* prev = NULL;struct ListNode* curr = head;struct ListNode* next = NULL;while (curr != NULL) {next = curr->next;curr->next = prev;prev = curr;curr = next;}head = prev;return head;}```4.2 给定一个二叉搜索树的根节点,请实现一个函数,返回树中任意两个节点的值的差的绝对值的最小值。
数据结构考研真题及其答案

一、选择题1. 算法的计算量的大小称为计算的(B )。
【北京邮电大学2000 二、3 (20/8分)】A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于(C )【中科院计算所1998 二、1 (2分)】A.问题的规模 B. 待处理数据的初态 C. A和B3.计算机算法指的是(C),它必须具备(B)这三个特性。
(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列D. 调度方法(2) A.可执行性、可移植性、可扩充性B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性【南京理工大学1999 一、1(2分)【武汉交通科技大学1996 一、1(4分)】4.一个算法应该是(B )。
【中山大学1998 二、1(2分)】A.程序B.问题求解步骤的描述C.要满足五个基本特性D.A和C.5. 下面关于算法说法错误的是( D )【南京理工大学2000 一、1(分)】A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的6. 下面说法错误的是( C )【南京理工大学2000 一、2 (分)】(1)算法原地工作的含义是指不需要任何额外的辅助空间(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低4 A.(1) B.(1),(2) C.(1),(4) D.(3)7.从逻辑上可以把数据结构分为( C )两大类。
【武汉交通科技大学1996 一、4(2分)】A.动态结构、静态结构B.顺序结构、链式结构C.线性结构、非线性结构D.初等结构、构造型结构8.以下与数据的存储结构无关的术语是( D )。
【北方交通大学2000 二、1(2分)】A.循环队列 B. 链表 C. 哈希表 D.栈9.以下数据结构中,哪一个是线性结构(D )【北方交通大学2001 一、1(2分)】A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串10.以下那一个术语与数据的存储结构无关( A )【北方交通大学2001 一、2(2分)】A.栈 B. 哈希表 C. 线索树 D. 双向链表11.在下面的程序段中,对x的赋值语句的频度为(C )【北京工商大学2001 一、10(3分)】FOR i:=1 TO n DOFOR j:=1 TO n DOx:=x+1;A.O(2n) B.O(n) C.O(n2) D.O(log2n) 12.程序段FOR i:=n-1 DOWNTO 1 DOFOR j:=1 TO i DOIF A[j]>A[j+1]THEN A[j]与A[j+1]对换;其中n为正整数,则最后一行的语句频度在最坏情况下是( D )A. O(n)B. O(nlogn)C. O(n3)D. O(n2) 【南京理工大学1998一、1(2分)】13.以下哪个数据结构不是多型数据类型( D )【中山大学1999 一、3(1分)】A.栈B.广义表C.有向图D.字符串14.以下数据结构中,( A )是非线性数据结构【中山大学1999 一、4】A.树B.字符串C.队D.栈15. 下列数据中,(C)是非线性数据结构。
《数据结构C语言》考研复习题库

《数据结构C语言》考研复习题库一、选择题1、在一个具有 n 个单元的顺序栈中,假定以地址低端(即 0 单元)作为栈底,以 top 作为栈顶指针,当做出栈处理时,top 变化为()。
A top 不变B top = 0C topD top++答案:C解释:在顺序栈中,出栈操作会使栈顶指针 top 减 1,即 top。
2、一个队列的入队序列是 1,2,3,4,则队列的输出序列是()。
A 4,3,2,1B 1,2,3,4C 1,4,3,2D 3,2,4,1答案:B解释:队列是先进先出的数据结构,入队顺序为 1,2,3,4,那么出队顺序也为 1,2,3,4。
3、串是一种特殊的线性表,其特殊性体现在()。
A 可以顺序存储B 数据元素是一个字符C 可以链式存储D 数据元素可以是多个字符答案:B解释:串的数据元素是字符,这是它与一般线性表的区别。
4、设有一个 10 阶的对称矩阵 A,采用压缩存储方式,以行序为主存储,a11 为第一元素,其存储地址为 1,每个元素占一个地址空间,则 a85 的地址为()。
A 33B 32C 18D 40答案:A解释:对于对称矩阵,只存储其下三角或上三角部分。
对于一个 n阶对称矩阵,若以行序为主存储下三角部分,aij 的存储位置为 i(i 1)/2 + j 1。
所以 a85 的地址为 8(8 1)/2 + 5 1 = 33。
5、一棵完全二叉树共有 700 个结点,则在该二叉树中有()个叶子结点。
A 350B 349C 351D 不确定答案:C解释:根据完全二叉树的性质,度为 1 的结点个数最多为 1 个。
设n0 为叶子结点个数,n1 为度为 1 的结点个数,n2 为度为 2 的结点个数。
则 n = n0 + n1 + n2 ,n 1 = 2n2 + n1 。
因为 n = 700 ,且 n1 为 0或 1 ,通过计算可得 n0 = 351 。
二、填空题1、数据的逻辑结构被分为_____、_____、_____和_____四种。
811数据结构考研题库

811数据结构考研题库数据结构是计算机科学领域的核心课程之一,对于考研学生来说,掌握数据结构的基本概念、原理和算法是至关重要的。
以下是一份针对数据结构的考研题库,旨在帮助学生复习和准备考试。
一、选择题1. 在数据结构中,线性结构的特点是什么?A. 元素之间存在一对一的关系B. 元素之间存在一对多的关系C. 元素之间存在多对多的关系D. 元素之间存在一对一或多对多的关系2. 栈(Stack)是一种特殊的线性表,其特点是:A. 只能在一端进行插入和删除操作B. 可以在两端进行插入和删除操作C. 只能在一端进行插入操作,另一端进行删除操作D. 可以在任意位置进行插入和删除操作3. 哈希表(Hash Table)解决冲突的方法不包括:A. 开放定址法B. 链地址法C. 线性探测法D. 二分查找法二、简答题1. 请简述链表与数组在存储结构上的主要区别。
2. 什么是二叉树的遍历?请列举出前序遍历、中序遍历和后序遍历的过程。
三、计算题1. 给定一个无向图,包含5个顶点和6条边,请计算其最小生成树的总权重,并给出生成树的边。
2. 假设有一个长度为n的有序数组,请计算使用二分查找法找到特定元素的时间复杂度。
四、编程题1. 编写一个函数,实现单链表的反转,并说明时间复杂度。
2. 给定一个二叉树的前序遍历序列和中序遍历序列,请恢复出这棵二叉树。
五、论述题1. 论述堆排序算法的原理及其时间复杂度,并讨论其在实际应用中的优缺点。
2. 描述图的深度优先搜索(DFS)和广度优先搜索(BFS)算法,并比较它们的不同点。
结束语数据结构的学习不仅仅是为了应对考试,更是为了在实际工作中能够高效地解决问题。
通过不断的练习和思考,可以加深对数据结构的理解和应用能力。
希望这份题库能够帮助你更好地复习和准备考研,祝你取得理想的成绩。
数据结构考研真题及其答案完整版

数据结构考研真题及其答案完整版数据结构是计算机科学与技术领域中的一门重要课程,也是计算机考研中必考的一门科目。
通过研究数据结构,可以帮助我们更好地理解和应用计算机算法,提高计算机程序的效率和性能。
为了帮助考生更好地备考数据结构,本文将分享一些数据结构考研真题及其答案,供考生参考。
一、选择题1. 下列关于栈的叙述中,错误的是()A. 栈是一种线性数据结构,具有后进先出(LIFO)的特点B. 栈可以用数组实现,也可以用链表实现C. 栈的插入和删除操作都是在同一端进行的D. 栈的插入和删除操作的时间复杂度都是O(1)答案:C解析:栈的插入操作叫做入栈,删除操作叫做出栈。
入栈和出栈操作都是在栈顶进行的,而不是同一端。
2. 假设要对n个整数关键字进行排序,以下排序算法中,平均时间复杂度最小的是()A. 冒泡排序B. 快速排序C. 归并排序D. 直接插入排序答案:C解析:归并排序的时间复杂度是O(nlogn),平均时间复杂度最小。
二、填空题1. 下列关于图的遍历顺序的说法中,正确的是:深度优先搜索访问的顺序是________,广度优先搜索访问的顺序是________。
答案:前序遍历,层次遍历解析:深度优先搜索即前序遍历,广度优先搜索即层次遍历。
2. 给定一个最小堆,若删除堆顶元素后,需要对堆进行调整,所采用的操作是________。
答案:下滤解析:删除堆顶元素后,将最后一个叶子节点放到堆顶,然后进行下滤操作。
三、简答题1. 请简要说明动态规划算法的基本思想和应用场景。
答:动态规划算法的基本思想是将问题分解为多个子问题,通过求解子问题的最优解来得到原问题的最优解。
它通常适用于具有重叠子问题和最优子结构性质的问题。
动态规划算法可以大大减少问题的重复计算,提高算法的效率和性能。
它在求解最短路径、最长公共子序列、背包问题等具有广泛的应用。
2. 请简要介绍红黑树的特点和应用场景。
答:红黑树是一种自平衡的二叉查找树,它具有以下特点:1) 每个节点都有一个颜色,红色或黑色;2) 根节点是黑色的;3) 叶子节点(NIL节点)都是黑色的;4) 如果一个节点是红色的,则它的两个子节点都是黑色的;5) 从根节点到叶子节点的路径上,不同路径上黑节点的个数相同。
数据结构考研题库

数据结构考研题库一、单选题1. 在数据结构中,下列哪个不属于线性表的存储结构?A. 顺序存储结构B. 链式存储结构C. 栈存储结构D. 树存储结构答案:D解析:线性表的存储结构包括顺序存储结构和链式存储结构,栈也是线性结构,因此选项C是线性表的一种存储结构。
树存储结构不属于线性表的存储结构。
2. 以下哪种排序算法的时间复杂度是O(nlogn)?A. 冒泡排序B. 插入排序C. 快速排序D. 堆排序答案:C解析:快速排序的时间复杂度是O(nlogn),而冒泡排序和插入排序的时间复杂度是O(n^2),堆排序的时间复杂度是O(nlogn)。
3. 在二叉树中,如果节点的度为2,那么该节点称为:A. 叶子节点B. 根节点C. 内部节点D. 空节点答案:C解析:节点的度是指该节点拥有的子树数目,度为2的节点称为内部节点。
叶子节点的度为0,根节点的度可以是任意数目。
4. 在哈希表中,通过关键字直接计算出数据元素存储地址的方法称为:A. 散列函数B. 哈希函数C. 转换函数D. 映射函数答案:A解析:哈希表中通过关键字计算存储地址的方法称为散列函数。
5. 图的存储结构有以下几种,不包括哪种?A. 邻接矩阵B. 邻接表C. 逆邻接矩阵D. 十字链表答案:C解析:图的存储结构包括邻接矩阵、邻接表、十字链表等,逆邻接矩阵不是图的存储结构。
二、填空题1. 在二叉树中,节点的度是指节点拥有的 __1__ 数目。
答案:子树2. 在散列表中,发生多个关键字映射到同一个存储地址的现象称为冲突,解决冲突的方法有 __2__ 和 __3__。
答案:开放地址法,链地址法3. 在树中,从根节点到叶子节点的路径上的节点数目称为树的__4__。
答案:高度4. 在图的深度优先搜索算法中,使用 __5__ 来记录已访问过的节点。
答案:栈5. 快速排序算法的平均时间复杂度为O(__6__)。
答案:nlogn三、简答题1. 请简要说明线性表的顺序存储结构和链式存储结构的特点及其适用场景。
考研数据结构算法题

1、在二叉搜索树中,若要进行中序遍历,访问根结点的顺序是?A. 第一个访问B. 最后一个访问C. 在左、右子树之间访问D. 不确定,与具体树结构有关(答案)C2、对于给定的无序数组,快速排序在最坏情况下的时间复杂度为?A. O(n)B. O(n log n)C. O(n2)D. O(log n)(答案)C3、在图的深度优先搜索(DFS)过程中,使用栈的主要目的是?A. 记录已访问的顶点B. 记录当前路径上的顶点,以便回溯C. 存储所有邻接顶点D. 确定搜索的起始点(答案)B4、下列哪种情况最适合使用哈希表进行数据存储和查找?A. 数据集合大小固定且较小B. 数据集合频繁变动,且需要快速查找C. 数据元素之间有明显的顺序关系D. 需要经常进行范围查询(答案)B5、在二叉树的后序遍历中,结点的访问顺序是?A. 先访问左子树,再访问右子树,最后访问根结点B. 先访问右子树,再访问左子树,最后访问根结点C. 先访问根结点,再依次访问左右子树D. 依次访问左、右子树,根结点的访问位置不固定(答案)A6、关于并查集(Union-Find)数据结构,下列说法错误的是?A. 主要用于处理一些不交集的合并及查询问题B. 使用路径压缩可以优化查找操作C. 使用按秩合并可以提高合并操作的效率D. 并查集不支持删除操作(注:传统并查集通常不直接支持删除某个特定元素的操作,但可以通过一些变通方法实现)(答案)D(注:此选项表述有争议,但在常见应用中,直接删除不是并查集的标准操作,故选择D作为“错误”的选项)7、在堆排序中,建立最大堆的过程是?A. 从最后一个非叶结点开始,向上调整堆B. 从根结点开始,向下调整堆C. 从第一个元素开始,依次比较并交换位置D. 从中间结点开始,向两端调整堆(答案)A8、下列关于B树(B-Tree)和B+树(B+ Tree)的说法中,错误的是?A. B树和B+树都是平衡树,保证了查找、插入、删除的时间复杂度B. B+树的所有叶结点通过一个链表相连,便于范围查询C. B树的每个结点都存储数据记录的关键字和实际数据D. B+树的内部结点只存储关键字,不存储实际数据,数据只存在于叶结点中(答案)C(注:在B+树中,内部结点只存储关键字,不存储实际数据,数据只存在于叶结点中;而B树的每个结点都可能存储数据记录的关键字和实际数据,但不一定所有结点都存,因此C选项的描述对于B树不完全准确,故选C)。
考研数据结构试题及答案

考研数据结构试题及答案一、选择题(每题2分,共10分)1. 在数据结构中,线性表的顺序存储结构通常使用什么数据结构来实现?A. 链表B. 栈C. 数组D. 队列答案:C2. 下列关于图的描述中,错误的是:A. 图是由顶点和边组成的B. 图中的边可以是无向边或有向边C. 图中任意两个顶点之间有且只有一条边D. 图可以是无向的或有向的答案:C3. 哈希表的冲突可以通过以下哪种方法来解决?A. 链地址法B. 排序C. 插入排序D. 选择排序答案:A4. 在二叉树的遍历算法中,先访问根节点,然后遍历左子树,最后遍历右子树,这种遍历方式被称为:A. 前序遍历B. 中序遍历C. 后序遍历D. 层序遍历答案:A5. 在排序算法中,时间复杂度为O(nlogn)的算法是:A. 冒泡排序B. 快速排序C. 插入排序D. 选择排序答案:B二、填空题(每题2分,共10分)1. 在二叉搜索树中,对于任意节点,其左子树中的所有节点的值都比该节点的值________。
答案:小2. 堆是一种特殊的完全二叉树,其中每个节点的值都大于或等于其子节点的值的堆被称为________。
答案:最大堆3. 在图的遍历中,深度优先搜索(DFS)使用的数据结构是________。
答案:栈4. 动态数组在进行插入操作时,如果数组已满,通常需要进行________操作。
答案:扩容5. 快速排序算法在最坏情况下的时间复杂度是________。
答案:O(n^2)三、简答题(每题5分,共20分)1. 请简述什么是递归,并举例说明递归在数据结构中的应用。
答案:递归是一种方法,它允许函数调用自身来解决问题。
在数据结构中,递归常用于遍历树和图,例如二叉树的前序、中序和后序遍历。
2. 描述排序算法中的稳定性和不稳定性,并给出一个稳定性排序算法的例子。
答案:稳定性排序算法是指在排序过程中,相等的元素的相对顺序不会改变。
不稳定性排序算法则可能改变相等元素的相对顺序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章绪论一、填空题(每空1分,共33分)1. 一个计算机系统包括硬件系统和软件系统两大部分。
2. 一台计算机中全部程序的集合,称为这台计算机的软件资源/(系统)。
3. 计算机软件可以分为系统软件和应用软件两大类。
科学计算程序包属于应用软件,诊断程序属于系统软件(工具)。
4. 一种用助忆符号来表示机器指令的操作符和操作数的语言是汇编语言。
5. 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和运算等的学科。
6. 数据结构被形式地定义为(D, R),其中D是数据元素的有限集合,R是D上的关系有限集合。
7. 数据结构包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容。
8. 数据结构按逻辑结构可分为两大类,它们分别是线性结构和非线性结构。
9. 线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。
10.在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有1个前驱结点;最后一个结点没有后续结点,其余每个结点有且只有1个后续结点。
11. 在树形结构中,树根结点没有前驱结点,其余每个结点有且只有 1 个前驱结点;叶子结点没有后续结点,其余每个结点的后续结点数可以任意多个。
12. 在图形结构中,每个结点的前驱结点数和后续结点数可以任意多个。
13.数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、索引和散列。
14. 数据的运算最常用的有5种,它们分别是插入、删除、修改、查找、排序。
15. 一个算法的效率可分为时间效率和空间效率。
16. 任何一个C程序都由一个主函数和若干个被调用的其它函数组成。
二、单项选择题(每小题1分,共15分)( B ) 1. 通常所说的主机是指∶A) CPU B) CPU和内存C) CPU、内存与外存D) CPU、内存与硬盘( C )2. 在计算机内部,一切信息的存取、处理和传送的形式是∶A) ACSII码B) BCD码C)二进制D)十六进制( D )3. 软件与程序的区别是∶A)程序价格便宜、软件价格昂贵;B)程序是用户自己编写的,而软件是由厂家提供的;C) 程序是用高级语言编写的,而软件是由机器语言编写的;D) 软件是程序以及开发、使用和维护所需要的所有文档的总称,而程序只是软件的一部分。
( C )4. 所谓“裸机”是指∶A) 单片机B)单板机C) 不装备任何软件的计算机D) 只装备操作系统的计算机( D )5. 应用软件是指∶A)所有能够使用的软件B) 能被各应用单位共同使用的某种软件C)所有微机上都应使用的基本软件D) 专门为某一应用目的而编制的软件(*A )6. C语言中的常量可分为整型常量、实型常量、字符型常量及(枚举)四种。
(A)符号常量(B)长整型常量(C)逻辑常量(D)二进制整数(*C )7. 编译程序的功能是∶A)发现源程序中的语法错误B)改正源程序中的语法错误C)将源程序编译成目标程序D)将某一高级语言程序翻译成另一种高级语言程序( A )8. 系统软件中最重要的是∶A) 操作系统B) 语言处理系统C) 工具软件D) 数据库管理系统( C )9. 可移植性最好的计算机语言是∶A) 机器语言B)汇编语言C) 高级语言D) 自然语言( B )10. 非线性结构是数据元素之间存在一种:A)一对多关系B)多对多关系C)多对一关系D)一对一关系( C )11. 数据结构中,与所使用的计算机无关的是数据的结构;A) 存储B) 物理C) 逻辑D) 物理和存储( C )12. 算法分析的目的是:A) 找出数据结构的合理性B) 研究算法中的输入和输出的关系C) 分析算法的效率以求改进D) 分析算法的易懂性和文档性( A )13. 算法分析的两个主要方面是:A) 空间复杂性和时间复杂性B) 正确性和简明性C) 可读性和文档性D) 数据复杂性和程序复杂性( C )14. 计算机算法指的是:A) 计算方法B) 排序方法C) 解决问题的有限运算序列D) 调度方法( B )15. 计算机算法必须具备输入、输出和等5个特性。
A) 可行性、可移植性和可扩充性B) 可行性、确定性和有穷性C) 确定性、有穷性和稳定性D) 易读性、稳定性和安全性第2章线性表一、填空(每空1分,共13分)1. 【严题集2.2①】在顺序表中插入或删除一个元素,需要平均移动表中一半元素,具体移动的元素个数与表长和该元素在表中的位置有关。
2. 线性表中结点的集合是有限的,结点间的关系是一对一的。
3. 向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动n-i+1 个元素。
4. 向一个长度为n的向量中删除第i个元素(1≤i≤n)时,需向前移动n-i 个元素。
5. 在顺序表中访问任意一结点的时间复杂度均为O(1) ,因此,顺序表也称为随机存取的数据结构。
6. 【严题集2.2①】顺序表中逻辑上相邻的元素的物理位置必定相邻。
单链表中逻辑上相邻的元素的物理位置不一定相邻。
7. 【严题集2.2①】在单链表中,除了首元结点外,任一结点的存储位置由其直接前驱结点的链域的值指示。
8.在n个结点的单链表中要删除已知结点*p,需找到它的前驱结点的地址,其时间复杂度为O(n)。
二、判断正误(在正确的说法后面打勾,反之打叉)(每小题1分,共10分)(×)1. 链表的每个结点中都恰好包含一个指针。
答:错误。
链表中的结点可含多个指针域,分别存放多个指针。
例如,双向链表中的结点可以含有两个指针域,分别存放指向其直接前趋和直接后继结点的指针。
(×)2. 链表的物理存储结构具有同链表一样的顺序。
错,链表的存储结构特点是无序,而链表的示意图有序。
(×)3. 链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。
错,链表的结点不会移动,只是指针内容改变。
(×)4. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。
错,混淆了逻辑结构与物理结构,链表也是线性表!且即使是顺序表,也能存放记录型数据。
(×)5. 顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。
错,正好说反了。
顺序表才适合随机存取,链表恰恰适于“顺藤摸瓜”(×)6. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
错,前一半正确,但后一半说法错误,那是链式存储的优点。
顺序存储方式插入、删除运算效率较低,在表长为n的顺序表中,插入和删除一个数据元素,平均需移动表长一半个数的数据元素。
(×)7. 线性表在物理存储空间中也一定是连续的。
错,线性表有两种存储方式,顺序存储和链式存储。
后者不要求连续存放。
(×)8. 线性表在顺序存储时,逻辑上相邻的元素未必在存储的物理位置次序上相邻。
错误。
线性表有两种存储方式,在顺序存储时,逻辑上相邻的元素在存储的物理位置次序上也相邻。
(×)9. 顺序存储方式只能用于存储线性结构。
错误。
顺序存储方式不仅能用于存储线性结构,还可以用来存放非线性结构,例如完全二叉树是属于非线性结构,但其最佳存储方式是顺序存储方式。
(后一节介绍)(×)10. 线性表的逻辑顺序与存储顺序总是一致的。
错,理由同7。
链式存储就无需一致。
三、单项选择题(每小题1分,共10分)( C )1.数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为:(A)存储结构(B)逻辑结构(C)顺序存储结构(D)链式存储结构( B )2.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是(A)110 (B)108 (C)100 (D)120( A )3. 在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是:(A)访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)(B)在第i个结点后插入一个新结点(1≤i≤n)(C)删除第i个结点(1≤i≤n)(D)将n个结点从小到大排序( B )4. 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动个元素(A)8 (B)63.5 (C)63 (D)7( A )5. 链接存储的存储结构所占存储空间:(A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针(B)只有一部分,存放结点值(C)只有一部分,存储表示结点间关系的指针(D)分两部分,一部分存放结点值,另一部分存放结点所占单元数( B )6. 链表是一种采用存储结构存储的线性表;(A)顺序(B)链式(C)星式(D)网状( D )7. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址:(A)必须是连续的(B)部分地址必须是连续的(C)一定是不连续的(D)连续或不连续都可以( B )8.线性表L在情况下适用于使用链式结构实现。
(A)需经常修改L中的结点值(B)需不断对L进行删除插入(C)L中含有大量的结点(D)L中结点结构复杂( C )9.单链表的存储密度(A)大于1;(B)等于1;(C)小于1;(D)不能确定( B )10.设a1、a2、a3为3个结点,整数P0,3,4代表地址,则如下的链式存储结构称为P034P0→→→(A)循环链表第3章栈和队列一、填空题(每空1分,共15分)1.栈和队列都是线性结构,可以在向量的任何位置插入和删除元素;对于栈只能在栈顶插入和删除元素;对于队列只能在队尾插入和队首删除元素。
2. 栈是一种特殊的线性表,允许插入和删除运算的一端称为栈顶。
不允许插入和删除运算的一端称为栈底。
3. 队列是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表。
4. 在一个循环队列中,队首指针指向队首元素的前一个位置。
5. 在具有n个单元的循环队列中,队满时共有n-1个元素。
6. 向栈中压入元素的操作是先移动栈顶指针,后存入元素。
7. 从循环队列中删除一个元素时,其操作是先移动队首指针,后取出元素。
二、判断正误(判断下列概念的正确性,并作出简要的说明。
)(每小题1分,共10分)(×)1. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。
错,线性表是逻辑结构概念,可以顺序存储或链式存储,与元素数据类型无关。
(×)2. 在表结构中最常用的是线性表,栈和队列不太常用。
错,不一定吧?调用子程序或函数常用,CPU中也用队列。
(√)3. 栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。
(√)4. 对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。
正确,都是线性逻辑结构,栈和队列其实是特殊的线性表,对运算的定义略有不同而已。