西南石油数据结构习题集答案
数据结构试题答案

数据结构试题答案一、选择题1. 以下哪种数据结构是线性存储的?A. 散列表B. 二叉树C. 链表D. 图答案:C1. 在单链表中,删除节点的正确操作是:A. 直接将节点内存释放B. 先保存节点的下一个节点,然后释放节点内存C. 将当前节点的数据覆盖为下一个节点的数据D. 将下一个节点的数据复制到当前节点,然后释放下一个节点的内存答案:B1. 对于二叉搜索树,以下说法正确的是:A. 每个节点的左子树只包含小于它的值B. 每个节点的右子树只包含大于它的值C. 每个节点的左、右子树中值的大小关系与节点的值无关D. 以上说法都不正确答案:A1. 在图的表示中,哪种方法可以更好地表示顶点之间的连接关系?A. 邻接矩阵B. 邻接表C. 边表D. 以上两种方法都可以答案:B1. 快速排序算法的时间复杂度通常是:A. O(log n)B. O(n)C. O(n log n)D. O(n^2)答案:C二、填空题1. 栈是一种有限存储的数据结构,它只允许在一端进行插入和删除操作。
答案:栈是一种后进先出(LIFO) 有限存储的数据结构,它只允许在栈顶进行插入和删除操作。
1. 在单链表中,若要插入一个新的节点,需要先复制节点的值,然后将其插入到指定位置。
答案:在单链表中,若要插入一个新的节点,需要先申请内存空间,将节点的值赋给新节点,然后将其插入到指定位置。
1. 冒泡排序算法的基本思想是通过不断地交换相邻的逆序元素,使得数据“气泡”到正确的位置。
答案:冒泡排序算法的基本思想是通过不断地比较交换相邻的逆序元素,使得数据“气泡”到正确的位置。
1. 在二叉树的遍历中,先访问根节点,再访问左子树,最后访问右子树的遍历方式称为前序遍历。
答案:在二叉树的遍历中,先访问根节点,再访问左子树,最后访问右子树的遍历方式称为前序遍历。
1. 哈希表的冲突解决方法之一是开放定址法,通过寻找表中另一个空闲的位置来存储冲突的元素。
答案:哈希表的冲突解决方法之一是开放定址法,通过寻找表中另一个空闲的位置来存储冲突的元素。
数据结构习题及参考答案

习题1一、单项选择题1.数据结构是指()。
A.数据元素的组织形式B.数据类型C.数据存储结构D.数据定义2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为()。
A.存储结构B.逻辑结构C.链式存储结构D.顺序存储结构3.树形结构是数据元素之间存在一种()。
A.一对一关系B.多对多关系C.多对一关系D.一对多关系4.设语句x++的时间是单位时间,则以下语句的时间复杂度为()。
for(i=1; i<=n; i++)for(j=i; j<=n; j++)x++;A.O(1)B.O(2n)C.O(n)D.O(3n)5.算法分析的目的是(1),算法分析的两个主要方面是(2)。
(1) A.找出数据结构的合理性 B.研究算法中的输入和输出关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性(2) A.空间复杂度和时间复杂度 B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性6.计算机算法指的是(1),它具备输入,输出和(2)等五个特性。
(1) A.计算方法 B.排序方法C.解决问题的有限运算序列D.调度方法(2) A.可行性,可移植性和可扩充性 B.可行性,确定性和有穷性C.确定性,有穷性和稳定性D.易读性,稳定性和安全性7.数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要()。
A.低B.高C.相同D.不好说8.数据结构作为一门独立的课程出现是在()年。
A.1946B.1953C.1964D.19689.数据结构只是研究数据的逻辑结构和物理结构,这种观点()。
A.正确B.错误C.前半句对,后半句错D.前半句错,后半句对10.计算机内部数据处理的基本单位是()。
A.数据B.数据元素C.数据项D.数据库二、填空题1.数据结构按逻辑结构可分为两大类,分别是______________和_________________。
2.数据的逻辑结构有四种基本形态,分别是________________、__________________、__________________和__________________。
数据结构习题(有答案)(精选文档)

数据结构习题(有答案) 第1章绪1。
1 有下列几种二元组表示的数据结构,试画出它们分别对应的图形表示,并指出它们分别属于何种结构。
(1) A= ( D,R ),其中,D = { a1,a2,a3,a4}, R={ }(2) B= ( D,R ),其中,D = { a,b,c,d,e}, R={ (a,b),(b,c),(c,d),(d,e)}(3) C= ( D,R),其中,D = { a,b,c,d,e,f,g}, R={(d,b),(d,g),(1)集合(2) 线性表a b c d e(3)树fgabcde(4)图1453621 / 48·····谢阅。
(b,a),(b,c),(g,e),(e,f)}(4) K= ( D,R ),其中,D= { 1,2,3,4,5,6}, R={〈1,2>,〈2,3>,〈2,4>,<3,4>,<3,5>,<3,6>,<4,5〉,〈4,6〉}1.2设n为正整数,求下列各程序段中的下划线语句的执行次数。
(1) i=1;k=0while(i 〈=n-1){k+=10*i ;i++;(2) for (int i=1;i<=n; i++)for (int j=1; j〈=n; j++){c[i][j]=0;解:(1) n-1(2) ∑∑∑====ninjnkn111312 / 48·····谢阅。
}ﻩ for(intk=1; k〈=n; k++)c[i][j]=c[i][j]+a[i][k]*b[k][j]}(3) x=0;y=0;for (int i=1; i<=n; i++)for (int j=1; j<=i; j++)for (intk=1; k〈=j; k ++)(3)62)1)(nn(n21)(216)12)(1(2121212)1(1112111111++=+•+++•=+=+==∑∑∑∑∑∑∑∑========nnnnniii ijnininiijjkniijni3 / 48·····谢阅。
数据结构习题参考答案

数据结构习题参考答案一、栈和队列1. 栈是一种具有后进先出(Last In First Out)特性的线性数据结构。
常用方法:- push(x): 将元素x压入栈顶;- pop(): 弹出栈顶元素;- top(): 返回栈顶元素;- isEmpty(): 判断栈是否为空;例题解答:(1)题目描述:使用栈实现队列的功能。
解答:使用两个栈,一个用于入队操作,一个用于出队操作。
入队操作:直接将元素压入入队栈中;出队操作:如果出队栈为空,则将入队栈的元素逐个弹出并压入出队栈,此时出队栈的栈顶元素即为要弹出的元素。
复杂度分析:入队操作的时间复杂度为O(1),出队操作的平均时间复杂度为O(1)。
(2)题目描述:判断括号序列是否合法,即括号是否完全匹配。
解答:使用栈来处理括号序列,遇到左括号则入栈,遇到右括号则与栈顶元素进行匹配,如果匹配成功则继续处理剩余字符,如果不匹配则判定为非法序列。
算法步骤:- 初始化一个空栈;- 从左到右遍历括号序列,对于每个字符执行以下操作:- 如果是左括号,则将其入栈;- 如果是右括号,则将其与栈顶元素进行匹配:- 如果栈为空,则判定为非法序列;- 如果栈顶元素与当前字符匹配,则将栈顶元素出栈,继续处理剩余字符;- 如果栈顶元素与当前字符不匹配,则判定为非法序列。
- 遍历结束后,如果栈为空,则括号序列合法;否则,括号序列非法。
复杂度分析:时间复杂度为O(n),其中n为括号序列的长度。
2. 队列是一种具有先进先出(First In First Out)特性的线性数据结构。
常用方法:- enqueue(x): 将元素x入队;- dequeue(): 出队并返回队首元素;- getFront(): 返回队首元素;- isEmpty(): 判断队列是否为空;例题解答:(1)题目描述:使用队列实现栈的功能。
解答:使用两个队列,一个用于入栈操作,一个用于出栈操作。
入栈操作:直接将元素入队入栈队列中;出栈操作:如果出栈队列为空,则将入栈队列的元素逐个出队并入队出栈队列,此时出栈队列的队首元素即为要出栈的元素。
数据结构习题集答案

数据结构习题集答案数据结构习题集答案数据结构是计算机科学中的重要概念,它研究如何组织和管理数据的方法和技术。
在学习数据结构的过程中,习题集是不可或缺的一部分。
通过解答习题,我们可以加深对数据结构的理解,并提升解决问题的能力。
本文将为大家提供一些常见数据结构习题的答案,希望能对大家的学习有所帮助。
一、线性数据结构1. 数组反转题目描述:给定一个整数数组,将其按照逆序排列。
解答:可以使用双指针法来解决这个问题。
定义两个指针,一个指向数组的起始位置,另一个指向数组的末尾位置。
然后交换两个指针指向的元素,并向中间移动指针,直到两个指针相遇为止。
2. 链表反转题目描述:给定一个链表,将其按照逆序排列。
解答:可以使用迭代或递归的方法来解决这个问题。
迭代的方法是使用三个指针,分别指向当前节点、前一个节点和后一个节点,然后依次改变节点的指向,直到遍历完整个链表。
递归的方法是先递归地反转链表的后续部分,然后将当前节点插入到反转后链表的末尾。
二、非线性数据结构1. 二叉树遍历题目描述:给定一个二叉树,按照前序、中序和后序的方式遍历它。
解答:前序遍历是先访问根节点,然后递归地遍历左子树和右子树。
中序遍历是先递归地遍历左子树,然后访问根节点,最后递归地遍历右子树。
后序遍历是先递归地遍历左子树和右子树,最后访问根节点。
可以使用递归或迭代的方法来实现这三种遍历方式。
2. 图的深度优先搜索题目描述:给定一个图,按照深度优先的方式遍历它。
解答:深度优先搜索是一种用于遍历或搜索图和树的算法。
它从一个起始节点开始,递归地访问它的邻居节点,直到没有未访问的邻居节点为止。
然后回溯到上一个节点,继续访问它的未访问邻居节点,直到遍历完整个图。
三、高级数据结构1. 哈希表实现题目描述:使用哈希表实现一个简单的键值对存储结构。
解答:哈希表是一种用于存储键值对的数据结构,它通过将键映射到一个固定大小的数组中来实现。
可以使用一个数组和一个哈希函数来实现哈希表。
数据结构题库及答案详解

数据结构题库及答案详解一、选择题1. 在数据结构中,线性结构的特点是什么?A. 结构中存在唯一的开始结点和终端结点B. 结构中所有结点的前驱和后继都存在C. 结构中所有结点都只有一个直接前驱和一个直接后继D. 结构中存在多个开始结点和终端结点答案:C2. 栈是一种特殊的线性表,其特点是:A. 先进先出B. 先进后出C. 可以同时在两端进行插入和删除操作D. 只能在一端进行插入和删除操作答案:D3. 在二叉树的遍历算法中,先序遍历的顺序是:A. 先访问根结点,然后遍历左子树,最后遍历右子树B. 先遍历左子树,然后访问根结点,最后遍历右子树C. 先遍历右子树,然后访问根结点,最后遍历左子树D. 先遍历左右子树,最后访问根结点答案:A二、填空题4. 在图的遍历中,______算法可以避免重复访问同一顶点。
5. 哈希表的冲突可以通过______方法来解决。
答案:4. 深度优先搜索(DFS)5. 链地址法或开放地址法三、简答题6. 简述排序算法中的快速排序算法的基本原理。
答案:快速排序算法是一种分治算法,它通过选择一个元素作为“基准”,然后将数组分为两个子数组,一个包含小于基准的元素,另一个包含大于基准的元素。
然后对这两个子数组递归地应用快速排序算法。
7. 解释什么是递归,并给出一个递归函数的例子。
答案:递归是一种在函数中调用自身的编程技术。
递归函数必须有一个明确的终止条件,以避免无限递归。
例如,计算阶乘的递归函数如下:```int factorial(int n) {if (n == 0) return 1; // 终止条件return n * factorial(n - 1); // 递归调用}```四、编程题8. 编写一个函数,实现单链表的反转。
答案:```c// 假设ListNode是链表节点的定义ListNode* reverseList(ListNode* head) {ListNode* prev = NULL;ListNode* curr = head;ListNode* next = NULL;while (curr != NULL) {next = curr->next; // 保存下一个节点curr->next = prev; // 反转指针prev = curr; // 移动prevcurr = next; // 移动curr}return prev; // 新的头节点}```9. 给定一个整数数组,请实现一个函数来找到数组中的最长连续子序列的长度。
数据结构习题(包含全部答案解析)

数据结构习题集(自编)第一章绪论一、选择题1.数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的()和运算的学科。
A.结构B.关系 C.运算 D.算法2.在数据结构中,从逻辑上可以把数据结构分成()。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.逻辑结构和存储结构3.线性表的逻辑顺序和存储顺序总是一致的,这种说法()。
A.正确B.不正确 C.无法确定 D.以上答案都不对4.算法分析的目的是()。
A.找出算法的合理性 B.研究算法的输人与输出关系C.分析算法的有效性以求改进 D.分析算法的易懂性5. 算法的时间复杂度取决于()A.问题的规模B待处理数据的初态 C. A和B6.一个算法应该是()。
A.程序B.问题求解步骤的描述C.要满足五个基本特性 D.A和C.7. 下面关于算法说法错误的是()A.算法最终必须由计算机程序实现B.为解决某问题的算法与为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的8.以下与数据的存储结构无关的术语是()。
A.循环队列 B. 链表 C. 哈希表 D. 栈9.在下面的程序段中,对x的赋值语句的频度为()for(i=0;i<n;i++)for(j=0;j<n;j++)x=x+1;nA. 2n B.n C.n2 D.log210.以下数据结构中,()是非线性数据结构A.树 B.字符串 C.队列 D.栈11. 下列数据中,()是线性数据结构。
A.哈夫曼树 B.有向无环图 C. 二叉排序树 D. 栈12.以下属于逻辑结构的是()。
A.顺序表 B. 哈希表 C.有序表 D. 单链表二、填空题1、_______是信息的载体,是对客观事物的符号表示,它能够被计算机识别、存储、加工和处理,________是对能够有效的输人到计算机中并且能够被计算机处理的符号的总称。
(数据、数据)2、数据元素是数据的______,有些情况下也称为元素、结点、顶点、记录等。
数据结构 习题答案

数据结构习题答案数据结构习题答案一、概述数据结构是计算机科学中的重要基础学科,涉及到各种数据的组织、存储、管理和操作方法。
通过学习数据结构,我们可以更好地理解和应用算法,提高程序的效率和可维护性。
以下是一些常见的数据结构习题及其答案。
二、线性结构1. 数组问题:给定一个整数数组,如何判断数组中是否存在重复元素?答案:可以使用哈希表,遍历数组,每次将元素作为键插入哈希表中,若插入失败则表示元素重复。
2. 链表问题:如何判断一个链表是否存在环?答案:使用快慢指针方法,定义两个指针,一个每次移动一个节点,另一个每次移动两个节点,若两个指针相遇,则链表存在环。
三、树形结构1. 二叉树问题:给定一个二叉树,如何判断它是否为平衡二叉树?答案:可以使用递归方法,定义一个函数计算二叉树的高度,然后判断左右子树的高度差是否小于等于1,且左右子树也分别为平衡二叉树。
2. 堆问题:如何实现一个堆的插入操作?答案:将元素插入到堆的末尾,然后进行上浮操作,即与父节点比较大小并交换,直到满足堆的性质。
四、图形结构1. 图的表示问题:如何表示一个图?答案:可以使用邻接矩阵或邻接表来表示一个图。
邻接矩阵是一个二维数组,表示节点与节点之间的连接关系;邻接表则使用链表或者数组来表示每个节点及其相邻节点。
2. 最短路径问题:如何找到图中两个节点之间的最短路径?答案:可以使用Dijkstra算法或者广度优先搜索算法来找到最短路径。
Dijkstra算法通过逐步更新最短路径估计值来求解最短路径;广度优先搜索算法则是按层次遍历图,直到找到目标节点。
五、其他数据结构1. 散列表问题:如何解决散列表中的冲突问题?答案:常用的解决冲突的方法有链地址法和开放地址法。
链地址法使用链表来解决冲突,将具有相同散列值的元素存储在同一个链表中;开放地址法则是通过探测或重新散列的方式寻找下一个可用的位置。
2. 字典树问题:如何实现一个字典树?答案:可以使用多叉树来实现字典树,每个节点存储一个字符,用于表示单词的各个字母,同时包含一个布尔值,用于判断是否为单词的结束。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构》习题集杨先凤朱小梅编西南石油大学计算机科学学院二零零七年九月目录习题一绪论 (1)习题二线性表 (5)习题三栈和队列 (10)习题四串 (14)习题五数组和广义表 (17)习题六树和二叉树 (21)习题七图 (27)习题八查找 (32)习题九排序 (36)习题十文件 (40)习题一绪论一、单项选择题1.数据结构被形式地定义为(K,R),其中K是(①)的有限集,R是K上的(②)有限集。
①A.算法 B.数据元素 C.数据操作 D 逻辑结构②A.操作 B.映像 C存储 D 关系2.在数据结构中,从逻辑上可以把数据结构分成()。
A 动态结构和静态结构B 紧凑结构和非紧凑结构C 线性结构和非线性结构 D.内部结构和外部结构3.数据结构在计算机内存中的表示是指()。
A.数据的存储结构 B 数据结构C 数据的逻辑结构 D.数据元素之间的关系4.在数据结构中,与所使用的计算机无关的是数据的()结构。
A.逻辑 B.存储 c.逻缉和存储 D.物理5.算法分析的目的是(①),算法分析的两个主要方面是(②)。
① A找出数据结构的合理性 B研究算法中的输入和输出的关系C分折算治的效率以求改进 D分析算法的易读性和文档性② A 空间复杂度和时间复杂度 B 正确性和简明性C 可读性和文档性D 数据复杂性和程序复杂性6.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储()。
A数据的处理方法 B.数据元素的类型C数据元素之间的关系 D数据的存储方法7. 算法的计算量的大小称为计算的()。
A.效率 B. 复杂性 C. 现实性 D. 难度8. 算法的时间复杂度取决于()A.问题的规模 B. 待处理数据的初态 C. A和B9. 下面说法错误的是()(1)算法原地工作的含义是指不需要任何额外的辅助空间(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低A.(1) B.(1),(2) C.(1),(4) D.(3)10.在下面的程序段中,对x的赋值语句的频度为()for (i=1;i<=n;i++)for (j=1;j<=n;j++)x:=x+1;A. O(2n) B.O(n) C.O(n2) D.O(log2n)二、判断题(在各题后填写“√”或“×”)1. 线性结构只能用顺序结构来存放,非线性结构只能用非顺序结构来存放。
()2. 数据元素是数据的最小单位。
( )3. 记录是数据处理的最小单位。
( )4. 算法就是程序。
()5. 数据的逻辑结构是指数据的各数据项之间的逻辑关系;( )6.数据的物理结构是指数据在计算机内的实际存储形式。
( )7. 在顺序存储结构中,有时也存储数据结构中元素之间的关系。
( )8. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
( )9. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址一定是不连续的。
( )10. 数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的储存结构. ( )三、填空题1. 数据结构是研讨数据的_ _和_ _,以及它们之间的相互关系,并对与这种结构定义相应的_ _,设计出相应的 _。
2.对于给定的n个元素,可以构造出的逻辑结构有,,,__ _四种。
3.在线性结构中,第一个结点前驱结点,其余每个结点有且仅有个前驱结点;最后一个结点后续结点,其余每个结点有且仅有个后续结点。
4.在树形结构中,树根结点没有结点,其余每个结点有且只有个前驱结点;叶子结点没有结点,其余每个结点的后续结点可以。
5.一个数据结构在计算机中称为存储结构。
6.通常,存储结点之间可以有__________、__________、__________、_________四种关联方式,称为四种基本存储方式。
7.抽象数据类型的定义仅取决于它的一组__ _,而与_ _无关,即不论其内部结构如何变化,只要它的_ _不变,都不影响其外部使用。
8.数据结构中评价算法的两个重要指标是9.一个算法具有5个特性: 、、,有零个或多个输入、有一个或多个输出。
10.常见时间复杂性的量级有:常数阶O(___________)、对数阶O(___________)、线性阶O (___________)、平方阶O(___________)、和指数阶O(___________)。
通常认为,具有指数阶量级的算法是___________,而量级低于平方阶的算法是___________的。
11. 计算机执行下面的语句时,语句s的执行次数为 _______ 。
for (i=l;i<n-l;i++)for (j=n;j>=i;j--)s;12.设m.n均为自然数,m可表示为一些不超过n的自然数之和,f(m,n)为这种表示方式的数目。
例f(5,3)=5,有5种表示方式:3+2,3+1+1,2+2+1,2+1+1+1,1+1+1+1+1。
以下是该函数的程序段,请将未完成的部分填入,使之完整int f(m,n)int m,n;{ if(m==1)return (1) ;if(n==1){return (2) ;}if(m<n){return f(m,m);}if (m==n){return 1+ (3) ;}return f(m.n-1)+f(m-n, (4) );}执行程序,f(6,4)= 。
13. 程序段“i=1;while(i<=n)i=i*2;”的时间复杂度T(n)= ___________。
四、应用题1.有下列几种用二元组表示的数据结构,画出它们分别对应的逻辑图形表示,并指出它们分别属于何种结构。
(1)A=(K,R),其中:K={a,b,c,d,e,f,g,h}R={r}r={<a,b>,<b,c>,<c,d>,<d,e>,<e,f>,<f,g>,<g,h>}(2)B=(K,R),其中:K={a,b,c,d,e,f,g,h}R={r}r={<d,b>,<d,g>,<d,a>,<b,c>,<g,e>,<g,h>,<e,f>},(3)C=(K,R),其中:K={1,2,3,4,5,6}R={r}r={(1,2),(2,3),(2,4),(3,4),(3,5),(3,6),(4,5),(4,6)}这里的圆括号对表示两结点是双向的。
2.若有100个学生,每个学生有学号,姓名,平均成绩,采用什么样的数据结构最4方便,写出这些结构?3. 调用下列函数f(n),回答下列问题 :(1)试指出f(n)值的大小,并写出f(n) 值的推导过程;(2)假定n= 5,试指出f(5)值的大小和执行f(5)时的输出结果。
C函数: int f(int n){ int i,j,k,sum= 0;for(i=l; i<n+1;i++){for(j=n;j>i-1; j--)for(k=1;k<j+1;k++ )sum++;printf("sum=%d\n",sum);}return (sum);}4.设计求解下列问题的类C语言算法,并分析其最坏情况时间复杂度。
(1)在数组A[1..n]中查找值为K的元素,若找到则输出其位置i(1<=i<=n),否则输出0作为标志。
(2)找出数组A[1..n]中元素的最大值和次最大值(本小题以数组元素的比较为标准操作)。
习题二线性表一、单项选择题1.顺序表是线性表的()A.链式存储结构 B.顺序存储结构 C.索引存储结构 D.散列存储结构2.对于顺序表,以下说法错误的是()A.顺序表是用一维数组实现的线性表,数组的下标可以看成是元素的绝对地址B.顺序表的所有存储结点按相应数据元素间的逻辑关系决定的次序依次排列C.顺序表的特点是:逻辑结构中相邻的结点在存储结构中仍相邻D.顺序表的特点是:逻辑上相邻的元素,存储在物理位置也相邻的单元中3.线性表是具有n个()的有限序列(n>0)。
A.表元素 B.字符 C.数据元素 D.数据项 E.信息项4.以下说法错误的是 ( )A.对于线性表来说,定位运算LocateElem在顺序表和单链表上的时间复杂度均为O (n)B.读表元运算在顺序表上只需常数时间O(1)便可实现,因此顺序表是一种随机存取结构C.在链表上实现读表元运算的平均时间复杂度为O(1)D.插入、删除操作在链表上的实现可在O(1)时间内完成E.插入、删除操作在顺序表上的实现,平均时间复杂度为O(n)5.若某线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用()存储方式最节省时间。
A.顺序表 B.单链表 C.双链表 D.单循环链表6.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( )最节省时间。
A. 单链表B.单循环链表C. 带尾指针的单循环链表D.带头结点的双循环链表7. 静态链表中指针表示的是().A.内存地址 B.数组下标 C.下一元素地址 D.左、右孩子地址8. 链表不具有的特点是()A.插入、删除不需要移动元素 B.可随机访问任一元素C.不必事先估计存储空间 D.所需空间与线性长度成正比9.在循环链表中,将头指针改设为尾指针(rear)后,其头结点和尾结点的存储位置分别是()A.rear和rear->next->nextB.rear->next 和rearC.rear->next->next和rearD.rear和rear->next10. 对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为()。
A.O(n) O(n) B. O(n) O(1) C. O(1) O(n) D. O(1) O(1) 11.线性表( a1,a2,…,an)以链接方式存储时,访问第i位置元素的时间复杂性为()A.O(i) B.O(1) C.O(n) D.O(i-1)12.在单链表指针为p的结点之后插入指针为s的结点,正确的操作是:()。
A.p->next=s;s->next=p->next; B. s->next=p->next;p->next=s;C.p->next=s;p->next=s->next; D. p->next=s->next;p->next=s;13.对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是()A.head==NULL B.head→next==NULLC.head→next==head D.head!=NULL二、判断题(在各题后填写“√”或“×”)1. 链表中的头结点仅起到标识的作用。