数据结构题集答案复习过程

合集下载

严蔚敏数据结构题集解答224页

严蔚敏数据结构题集解答224页

严蔚敏数据结构题集解答224页第一章基本概念和术语1.1数据结构的定义和作用数据结构是指数据对象中数据元素之间的关系,以及对这些关系的操作。

它在计算机科学中起着重要的作用,可以帮助我们更好地组织和管理数据。

1.2算法的定义和特性算法是一系列解决问题的清晰指令,它包含了一系列的步骤和规则,能够将输入转换为输出。

算法需要具备以下特性:确定性、有限性、可行性和输入输出。

第二章线性表2.1线性表的基本概念和表示线性表是由零个或多个数据元素组成的有限序列,它是一种常用的数据结构。

线性表可以使用顺序存储结构或链式存储结构进行表示。

2.2线性表的基本操作线性表的基本操作包括插入、删除、查找等。

插入操作可以在指定的位置插入一个新元素,删除操作可以删除指定位置的元素,查找操作可以根据给定条件来查找满足要求的元素。

第三章栈和队列3.1栈的定义和基本操作栈是一种特殊的线性表,它只允许在栈的一端进行插入和删除操作,这一端称为栈顶。

栈的基本操作包括进栈和出栈,以及栈空和栈满的判断。

3.2队列的定义和基本操作队列是一种特殊的线性表,它只允许在一端进行插入操作,在另一端进行删除操作,插入端称为队尾,删除端称为队头。

队列的基本操作包括入队和出队,以及队空和队满的判断。

第四章串4.1串的基本概念和表示方法串是由零个或多个字符组成的有限序列,它是一种特殊的线性表。

串的表示方法有两种:顺序存储和链式存储。

4.2朴素的模式匹配算法朴素的模式匹配算法是一种简单而有效的模式匹配算法,它通过逐个字符地比较主串和模式串的字符来进行匹配。

第五章数组和广义表5.1数组的定义和基本操作数组是一种线性表,它由一系列相同类型的元素组成。

数组的基本操作包括插入和删除元素,以及数组的查找和排序等。

5.2广义表的定义和基本操作广义表是一种扩展的线性表,它可以包含任意类型的元素,不仅可以是数据元素,还可以是另一个广义表。

广义表的基本操作包括对表头和表尾的操作,以及广义表的插入和删除等。

数据结构题集及答案

数据结构题集及答案

判断题1.数据的逻辑结构与数据元素本身的内容和形式无关。

(√)2.一个数据结构是由一个逻辑结构和这个逻辑结构上的一个基本运算集构成的整体。

(√)3.数据元素是数据的最小单位。

(√)4.数据的逻辑结构和数据的存储结构是相同的。

(×)5.程序和算法原则上是没有区别的,所以在讨论数据结构时可以通用。

(×)6.从逻辑关系上讲,数据结构主要分为线性结构和非线性结构。

(√)7.数据的存储结构是数据的逻辑结构的存储映像。

(×)8.数据的物理结构是指数据在计算机内实际的存储形式。

(√)9.数据的逻辑结构是依赖于计算机的。

(×)10.算法是对解题方法和的描述步骤。

(√)填空题:1.数据有逻辑结构和存储结构两种结构。

2.数据逻辑结构除了集合以外,还包括线性结构、树形结构和图形结构。

3.数据结构按逻辑结构可分为两大类,它们是线性结构和非线性结构。

4.树形结构和图形结构合称为非线性结构。

5.在树形结构中,除了树根结点以外,其余每个结点只有 1 个前驱结点。

6.在图形结构中,每个结点的前驱结点数和后继结点数可以任意多个。

7.数据的存储结构又叫物理结构。

8.数据的存储结构形式包括顺序存储、链式存储、索引存储和散列存储。

9.线性结构中的元素之间存在一对一的关系。

10.树形结构中的元素之间存在一对多的关系。

11.图形结构的元素之间存在多对多的关系。

12.数据结构主要研究数据的逻辑结构、存储结构和算法(或运算)3个方面的内容。

13.数据结构被定义为(D,R),其中D是数据的有限集合,R是D上的关系的有限集合。

14.算法是一个有穷指令的集合。

15.算法效率的度量可以分为事先估算和事后统计法。

16.一个算法的时间复杂性是算法输入规模的函数。

17.算法的空间复杂度是指该算法所耗费的存储空间,它是该算法求解问题规模n的函数。

18.若一个算法中的语句频度之和为T(n)=6n+3nlog2n,则算法的时间复杂度为O(nlog2n )。

数据结构教程(含习题和答案)

数据结构教程(含习题和答案)

第一章:概论(包括习题与答案及要点)本章的重点是了解数据结构的逻辑结构、存储结构、数据的运算三方面的概念及相互关系,难点是算法复杂度的分析方法。

需要达到<识记>层次的基本概念和术语有:数据、数据元素、数据项、数据结构。

特别是数据结构的逻辑结构、存储结构及数据运算的含义及其相互关系。

数据结构的两大类逻辑结构和四种常用的存储表示方法。

需要达到<领会>层次的内容有算法、算法的时间复杂度和空间复杂度、最坏的和平均时间复杂度等概念,算法描述和算法分析的方法、对一般的算法要能分析出时间复杂度。

--------------------------------------------------------------------------------对于基本概念,仔细看书就能够理解,这里简单提一下:数据就是指能够被计算机识别、存储和加工处理的信息的载体。

数据元素是数据的基本单位,有时一个数据元素可以由若干个数据项组成。

数据项是具有独立含义的最小标识单位。

如整数这个集合中,10这个数就可称是一个数据元素.又比如在一个数据库(关系式数据库)中,一个记录可称为一个数据元素,而这个元素中的某一字段就是一个数据项。

数据结构的定义虽然没有标准,但是它包括以下三方面内容:逻辑结构、存储结构、和对数据的操作。

这一段比较重要,我用自己的语言来说明一下,大家看看是不是这样。

比如一个表(数据库),我们就称它为一个数据结构,它由很多记录(数据元素)组成,每个元素又包括很多字段(数据项)组成。

那么这张表的逻辑结构是怎么样的呢? 我们分析数据结构都是从结点(其实也就是元素、记录、顶点,虽然在各种情况下所用名字不同,但说的是同一个东东)之间的关系来分析的,对于这个表中的任一个记录(结点),它只有一个直接前趋,只有一个直接后继(前趋后继就是前相邻后相邻的意思),整个表只有一个开始结点和一个终端结点,那我们知道了这些关系就能明白这个表的逻辑结构了。

数据结构课程课后习题集答案解析

数据结构课程课后习题集答案解析

《数据结构简明教程》练习题及参考答案练习题11. 单项选择题(1)线性结构中数据元素之间是()关系。

A.一对多B.多对多C.多对一D.一对一答:D(2)数据结构中与所使用的计算机无关的是数据的()结构。

A.存储B.物理C.逻辑D.物理和存储答:C(3)算法分析的目的是()。

A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性答:C(4)算法分析的两个主要方面是()。

A.空间复杂性和时间复杂性B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性答:A(5)计算机算法指的是()。

A.计算方法B. 排序方法C.求解问题的有限运算序列D.调度方法答:C(6)计算机算法必须具备输入、输出和()等5个特性。

A.可行性、可移植性和可扩充性B.可行性、确定性和有穷性C.确定性、有穷性和稳定性D.易读性、稳定性和安全性答:B2. 填空题(1)数据结构包括数据的①、数据的②和数据的③这三个方面的内容。

答:①逻辑结构②存储结构③运算(2)数据结构按逻辑结构可分为两大类,它们分别是①和②。

答:①线性结构②非线性结构(3)数据结构被形式地定义为(D,R),其中D是①的有限集合,R是D上的②有限集合。

答:①数据元素②关系数据结构简明教程(4)在线性结构中,第一个结点 ① 前驱结点,其余每个结点有且只有1个前驱结点;最后一个结点 ② 后继结点,其余每个结点有且只有1个后继结点。

答:①没有 ②没有 (5)在树形结构中,树根结点没有 ① 结点,其余每个结点有且只有 ② 个前驱结点;叶子结点没有 ③ 结点,其余每个结点的后继结点数可以是 ④ 。

答:①前驱 ②1 ③后继 ④任意多个(6)在图形结构中,每个结点的前驱结点数和后继结点数可以是( )。

答:任意多个(7)数据的存储结构主要有四种,它们分别是 ① 、 ② 、 ③ 和 ④ 存储结构。

答:①顺序 ②链式 ③索引 ④哈希(8)一个算法的效率可分为 ① 效率和 ② 效率。

数据结构复习题及答案

数据结构复习题及答案

数据结构复习题及答案数据结构复习题及答案数据结构是计算机科学中的重要基础,它涉及到存储、组织和管理数据的方法和技术。

在学习数据结构的过程中,我们经常会遇到各种复习题,通过解答这些题目可以巩固对数据结构的理解和掌握。

本文将给出一些常见的数据结构复习题及其答案,希望对读者的学习有所帮助。

一、数组1. 给定一个整数数组,如何找到数组中的最大值和最小值?答案:可以使用遍历数组的方式,依次比较每个元素与当前的最大值和最小值,更新最大值和最小值即可。

2. 给定一个整数数组和一个目标值,如何判断数组中是否存在两个数的和等于目标值?答案:可以使用两层循环遍历数组,依次判断每两个数的和是否等于目标值。

二、链表1. 如何反转一个单链表?答案:可以使用三个指针prev、curr和next,分别表示当前节点的前一个节点、当前节点和当前节点的下一个节点。

通过遍历链表,每次将当前节点的next指针指向prev节点,然后更新prev、curr和next指针,直到遍历到链表的末尾。

2. 如何判断一个链表是否有环?答案:可以使用快慢指针的方法。

定义两个指针slow和fast,初始时都指向链表的头节点。

slow指针每次移动一步,fast指针每次移动两步。

如果链表中存在环,那么两个指针最终会相遇;如果链表中不存在环,那么fast指针会先到达链表的末尾。

三、栈和队列1. 如何使用栈实现队列?答案:可以使用两个栈来实现队列。

一个栈用来存储入队的元素,另一个栈用来存储出队的元素。

当需要入队时,直接将元素压入第一个栈;当需要出队时,如果第二个栈为空,则将第一个栈中的元素依次弹出并压入第二个栈,然后从第二个栈中弹出元素;如果第二个栈不为空,则直接从第二个栈中弹出元素。

2. 如何使用队列实现栈?答案:可以使用两个队列来实现栈。

一个队列用来存储元素,另一个队列用来辅助操作。

当需要入栈时,直接将元素入队;当需要出栈时,将队列中的元素依次出队并入辅助队列,直到队列中只剩下一个元素,然后将该元素出队;然后交换两个队列的角色,使得辅助队列成为主队列,主队列成为辅助队列。

数据结构习题集(包含全部答案).

数据结构习题集(包含全部答案).

数据结构习题集(自编)第一章绪论一、选择题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. 数据结构被形式地定义为(D, R),其中D是数据元素的有限集合,R是D上的关系有限集合。

3. 数据结构包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容。

4. 数据结构按逻辑结构可分为两大类,它们分别是线性结构和非线性结构。

5. 线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。

6.在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有 1个前驱结点;最后一个结点没有后续结点,其余每个结点有且只有1个后续结点。

7. 在树形结构中,树根结点没有前驱结点,其余每个结点有且只有1个前驱结点;叶子结点没有后续结点,其余每个结点的后续结点数可以任意多个。

8. 在图形结构中,每个结点的前驱结点数和后续结点数可以任意多个。

9.数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、索引和散列。

10. 数据的运算最常用的有5种,它们分别是插入、删除、修改、查找、排序。

11. 一个算法的效率可分为时间效率和空间效率。

二、单项选择题(B)1. 非线性结构是数据元素之间存在一种:A)一对多关系 B)多对多关系C)多对一关系 D)一对一关系( C )2. 数据结构中,与所使用的计算机无关的是数据的结构;A) 存储 B) 物理C) 逻辑 D) 物理和存储(C)3. 算法分析的目的是:A) 找出数据结构的合理性B) 研究算法中的输入和输出的关系C) 分析算法的效率以求改进D) 分析算法的易懂性和文档性(A)4. 算法分析的两个主要方面是:A) 空间复杂性和时间复杂性B) 正确性和简明性C) 可读性和文档性D) 数据复杂性和程序复杂性(C )5. 计算机算法指的是:A) 计算方法B) 排序方法C) 解决问题的有限运算序列D) 调度方法(B)6. 计算机算法必须具备输入、输出和等5个特性。

数据结构总复习+习题+解答

数据结构总复习+习题+解答
双亲表示法孩子链表示法孩子兄弟表示法2树和二叉树之间的转换树的先根遍历二叉树的先序遍历树的后根遍历二叉树的中序遍历3树和森林之间的转换森林的先序中序和后序遍历与二叉树的先序中序和后序遍历一一对应63huffman1huffman树的构造过程2前缀码概念3计算带权路径长度
数据结构复习资料
数据结构总复习+习题解答
第一章 绪论
1.1 理解基本概念 1、数据是信息的载体,是描述客观事物的数、字符以及能输入到计算机中,被计算机识别 和处理的符号的集合。 2、数据元素是数据的基本单位,可由若干数据项组成。 3、数据对象是性质相同的数据元素的集合。 4、数据结构指某一数据元素集合中所有数据成员之间的关系,定义为: 数据结构={D,R} 5、数据结构三要素:逻辑结构,物理结构,作用于数据结构的运算。 6、逻辑结构:数据元素间的逻辑关系,分为线性结构和非线性结构(集合、树和图结构) 。 7、物理结构:数据元素及其关系在计算机上的映像,通常按顺序存储或链式存储。 8、抽象数据类型定义了一个数据对象,数据对象中各元素之间的关系以及一组处理数据的 操作。特征:数据抽象和信息隐藏。 9、数据类型和数据结构的异同: 同:它们都具有抽象性,并不特指适用于何处,可根据问题需要用他们来表示数据元 素间的关系。 异:数据结构本身是一种数据的组织和使用形式,通过把数据定义成数据类型才能在 计算机上使用。 1.2 算法特性与性能分析 1、算法的定义:解决特定问题的一系列操作。 2、算法的 5 大特性(要素) :输入、输出、确定性、可行性和有限性。 3、算法时间复杂度分析:寻找关键操作(基本操作,通常为循环的最内层程序段) ,计算关 键操作的执行次数,一般结果为问题规模 n 的多项式。时间复杂度为该多项式的最高次幂。 T(n)=O(1)的含义:常量时间复杂度,表示算法执行时间与问题规模无关。 4、算法空间复杂度分析:算法执行时所需要的辅助空间。 S(n)=O(1)的含义: 常量空间复杂度,表示算法执行时需要的辅助空间与问题规模无关,也 称为算法原地工作。 题 1.1 如何理解抽象数据类型。 答:定义了一个数据对象,数据对象中各元素之间的关系以及一组处理数据的操作。 题 1.2 数据元素间的逻辑结构关系有哪些。 答:四种。分别是集合结构、线性结构、树状结构、图状结构。 题 1.3 通常从时间复杂度和空间复杂度来评价算法的优劣。 题 1.4 下面算法的时间复杂度为(C) int i,j; for(i=0;i<m;i++) for(j=0;j<n;j++) a[i][j]=i*j;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构题集答案数据结构题集第一章绪论一、单选题1.在数据结构中,从逻辑上可以把数据结构分成【 C 】。

A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构2.数据结构在计算机内存中的表示是指【 A 】。

A.数据的存储结构B.数据结构C.数据结构的逻辑结构D.数据元素之间的关系3. 【 A 】是数据的最小单位,【 B 】是数据的基本单位。

A.数据项B.数据元素C.信息项D.表元素4. 计算机所处理数据一般具有某种内在联系,这是指【 B 】。

A.数据与数据之间存在某种关系B.数据元素与数据元素之间存在某种关系C.元素内部存在某种结构D.数据项与数据项之间存在某种关系5.算法分析的目的是【 C 】。

A.找出数据结构的合理性B.研究输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性6.在存储数据时,不仅要考虑存储各数据元素的值,而且还要存储【 C 】。

A.数据处理的方法B.数据元素的类型C.数据元素之间的关系D.数据的存储方法7.算法分析的主要任务是分析【 D 】。

A.算法是否具有较好的可读性B.算法中是否存储语法错误和逻辑错误C.算法的功能是否符合设计要求D.算法的执行时间与问题规模之间的关系。

8.数据的运算【 A 】。

A.效率与采用何种存储结构有关B.是根据存储结构来定义的C.有算术运算和关系运算两大类D.必须用程序设计语言来描述9.算法的计算量的大小称为算法的【 B 】。

A.效率B.时间复杂度C.现实性D.难度10.连续存储分配时,存储单元的地址【A 】。

A.一定连续B.一定不连续C.不一定连续D.部分连续,部分不连续二、判断题1.数据元素是数据结构的最小单位【.×】。

2.数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的存储结构【×.】。

3.数据的逻辑结构指数据元素的各数据项之间的逻辑关系【×.】。

4.算法的优劣与算法的描述语言无关,但与使用的计算机有关【.×】。

5.数据结构的抽象操作的定义与具体实现有关【.×】。

三、填空题1.数据的逻辑结构指数据元素之间的逻辑关系。

2.一个数据结构在计算机中的表示称为存储结构。

3.数据的物理结构主要包括顺序存储结构的表示和链式存储结构的表示。

4.数据逻辑结构包括集合、线性结构、树和图四种,树结构和图结构统称为非线性结构。

5.顺序存储方法把逻辑上逻辑上相邻的元素存储在物理位置相邻的存储单元里;链式存储方法中结点间的逻辑关系是由指针域表示的。

6、数据结构研究的是逻辑结构和物理结构以及它们之间的相互关系,并对于这种结构定义相应的运算,设计出相应的算法。

7.算法的执行时间是问题规模n 的函数。

8.以下是4个算法所有语句频度之和的表达式,其中的复杂度相同的是 A和B 。

A.T A(n)=2n3+3n2+1000B.T B(n)=n3-n2log2n-1000C.T C(n)=n2log2n+n2D.T D(n)=n2+1000四、解答题1.简述数据的逻辑结构和存储结构的关系。

答:在数据结构中,逻辑结构和存储结构是密切相关的,存储结构不仅将数据元素存储到计算机中,而且还要表示各数据元素之间的逻辑关系。

逻辑结构与计算机无关,存储结构是数据元素之间的关系在计算机中的表示。

通常情况下,一种逻辑结构可以有多种存储结构,例如,线性结构可以采取顺序存储结构或链式存粗结构表示。

2.数据结构和数据类型有什么区别?答:数据结构是相互间存在一种或多种特定关系的数据元素的集合,一般包括三个方面的内容:数据的逻辑结构、存储结构和多数据的运算。

数据类型是一个值得集合和定义在这个值集上的一组操作的总称。

数据结构重点考虑元素之间的关系,数据类型重点考虑数据的个体特征。

3.当为解决某一问题已经选定其数据的逻辑结构后,选择数据的存储结构时,应从哪些方面考虑?答:通常从两个方面考虑:第一是算法实现的存储空间复杂度;第二是算法执行的时间复杂度。

若存储空间难以确定,宜选择链式存储结构,否则选择顺序存储结构。

若插入、删除操作频繁,则选链式存储结构,否则选择顺序存储结构。

第二章线性表一、单选题1.链表不具备的特点是【 A 】。

A.可随机访问任一结点B.插入删除不需要移动元素C.不必事先估算存储空间D.所需空间与其长度成正比2.设线性表有n个元素,以下操作中,【 A 】在顺序表上实现比在链表上实现效率更高。

A.输出第i(1≤i≤n)个元素的值B.顺序输出这n个元素C.交换第1个与第2个元素的值D.输出与给定值x相等的元素在线性表中的序号3.如果最常用的操作是取第i个结点及其前驱,则采用【 D 】存储方法最节省时间。

A.单链表B.双链表C.线性链表D.顺序表4.线性表是具有n个【 C 】的有限序列(n≥0)。

A.表元素B.字符C.数据元素D.数据项5.下面关于线性表的叙述中,错误的是【 B 】。

A.线性表采用顺序存储,则必须占用一片连续的存储单元B.线性表采用顺序存储,则便于插入和删除操作C.线性表采用链式存储,则不必占用一片连续的存储单元D.线性表采用链式存储,则便于插入和删除操作6. 线性表的顺序存储结构是一种【 A 】。

A.随机存取的存储结构B.顺序存取的存储结构C.索引存取的存储结构D.Hash存取的存储结构7.单链表中增加一个头结点的目的是为了【 C 】。

A.使单链表至少有一个结点B.标识表首结点的位置C.方便运算的实现D.说明单链表是线性表的链式存储8.不带头结点的单链表(头指针为h)为空的条件是【 A 】。

A.h==NULLB.h->next==NULLC.h->next==hD.h!=NULL9. 带头结点的单链表(头指针为h)为空的条件是【 B 】。

A.h==NULLB.h->next==NULLC.h->next==hD.h!=NULL10.带头结点的循环双向链表(头指针为L)为空的条件是【 D 】。

A.L==NULLB.L->next->prior==NULLC.L->prior==NULLD.L->next==L11.非空的循环单链表(头指针为head)的尾结点(由p指向)满足【 C 】。

A.p->next==NULLB.p==NULLC.p->next==headD.p==head12.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用【 A 】最节省时间。

A.带头结点的双循环链表B.单循环链表C.带尾指针的单循环链表D.单链表13.若某线性表最常用的操作存取任意指定序号的元素和在表尾进行插入和删除,则选用【 A 】的存储方式最节省时间。

A.顺序表B.双链表C.带头结点的双循环链表D.单循环链表14.在n个结点的线性表的顺序实现中,算法的时间复杂度为O(1)的操作是【 A】。

A.访问第i个结点和求第i个结点的直接前驱B.在第i个结点后插入一个新结点C.删除第i个结点D.以上都不对15.若长度为n的线性表采用顺序存储结构,在第i个位置插入一个新元素的算法的时间复杂度为【 C 】。

A.O(0)B.O(1)C.O(n)D.O(n2)16.对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为【 C 】。

A.O(n)O(n)B.O(n)O(1)C.O(1)O(n)D.O(1)O(1)17. 线性表以链式方式存储,访问第i个结点的时间复杂度为【 C 】。

A.O(i)B.O(1)C.O(n)D.O(i-1)18.循环链表H尾结点p的特点是【 A 】。

A.p->next==HB.p->next==H->nextC.p==HD.p==H->next二、判断题【×】1.取线性表的第i个元素的时间同i的大小有关。

【×】2.线性表中每个元素都有一个直接前驱和一个直接后继。

【×】3.顺序存储方式只能用于存储线性结构。

【×】4.线性表采用链式存储时,结点和结点内部的存储空间可以不连续。

【×】5.在一个设有头指针和尾指针的单链表中,执行删除单链表最后一个结点的操作与链表的长度无关。

三、填空题1.向一个长度为n的顺序表中的第i个元素之前插入一个元素时,需要向后移动 n-i+1 个元素。

2. 在一个长度为n的顺序表中删除第i个元素时,需要向前移动 n-i 个元素。

3.在单链表中设置头结点的作用是简化插入、删除算法。

4.在单链中要删除某一指定结点,必须找到该结点的直接前驱结点。

5. 访问单链表中的结点,必须沿着指针域依次进行。

6.在双链表中每个结点有两个指针域,一个指向直接前驱结点,一个指向直接后继结点。

7.在双向循环链表中,删除最后一个结点的算法时间复杂度为O(1)。

8.访问一个线性表中具有给定值的时间复杂度的数量级是 O(n) 。

9.由n个数据元素生成一个顺序表,若每次都调用插入算法把一个元素插入到表头,则整个算法的时间复杂度为 O(n) ,若每次都调用插入算法把一个元素插入到表尾,则整个算法的时间复杂度为 O(n2) 。

10. 在双向链表中,可以用表尾指针代替表头指针。

11.根据n个数据元素建立对应的顺序表和单链表存储结构,其算法的时间复杂度最好的情况是 O(n) ,最坏的情况是 O(n2) 。

12.求线性表的顺序存储和链式存储的长度的算法时间复杂度分别是 O(1) 和 O(n) 。

13.在一个带头结点的单链表中,在表头插入或删除与在其他位置插入或删除,其操作过程是否相同?相同。

14.在一个不带头结点的单链表中,在表头插入或删除与在其他位置插入或删除,其操作过程是否相同?不相同。

四、简答题1.阐述顺序表和链表存储方式的特点。

答:顺序表存储方式为数据分配连续的存储单元,数据元素按逻辑顺序依次存储到相应存储单元中,使得逻辑相邻的数据元素物理也相邻,因此可以实现随机访问线性表的数据元素,即数据访问的时间复杂度为O(1)。

链表存储方式分配的存储单元可以不连续,通过每个结点的指针域来表示数据元素之间的逻辑关系,只能顺序访问线性表中的数据元素。

2. 若频繁地对一个线性表进行插入和删除操作,则该线性表宜采用何种存储结构,为什么?答:若频繁地对一个线性表进行插入和删除操作,则该线性表宜采用链式存储结构。

因为链式存储结构在插入和删除数据元素时不需要移动数据元素,只需要修改结点的指针域就可以改变数据元素之间的逻辑关系。

3.在单链表、双向循环链表和单循环链表中,若仅知道指针p指向某结点,不知道头指针,能否将结点p从相应的链表中删除?若可以,时间复杂度各为多少。

答:要实现删除p结点的操作,必须找到其前驱结点,修改其指针域的值使其指向p的后继结点,以实现删除结点p。

相关文档
最新文档