数据结构期末复习练习题
数据结构期末试题及答案
![数据结构期末试题及答案](https://img.taocdn.com/s3/m/e27381b385254b35eefdc8d376eeaeaad1f316b1.png)
数据结构期末试题及答案一、单项选择题(每题2分,共20分)1. 在数据结构中,线性表的顺序存储结构和链式存储结构的主要区别在于:A. 数据元素的存储关系B. 数据元素的存储空间C. 数据元素的存储顺序D. 数据元素的存储位置答案:A2. 下列关于栈的描述中,错误的是:A. 栈是一种后进先出(LIFO)的数据结构B. 栈只能进行插入和删除操作C. 栈顶元素可以被访问D. 栈可以进行顺序存储和链式存储答案:B3. 在二叉树的遍历算法中,不使用递归算法的遍历方式是:A. 前序遍历B. 中序遍历C. 后序遍历D. 层序遍历答案:D4. 哈希表的冲突解决方法中,不包括以下哪种:A. 开放定址法B. 链地址法C. 线性探测法D. 排序法答案:D5. 在图的遍历算法中,深度优先搜索(DFS)和广度优先搜索(BFS)的主要区别在于:A. 搜索的顺序B. 存储结构C. 遍历的深度D. 遍历的宽度答案:A6. 快速排序算法的时间复杂度最坏情况下为:A. O(n)B. O(nlogn)C. O(n^2)D. O(n^3)答案:C7. 下列关于二叉搜索树的描述中,正确的是:A. 每个节点的左子树只包含小于该节点的键值B. 每个节点的右子树只包含大于该节点的键值C. 以上两个选项都正确D. 以上两个选项都不正确答案:C8. 在非递归的二叉树遍历算法中,通常需要使用的数据结构是:A. 栈B. 队列C. 链表D. 数组答案:A9. 一个有n个顶点的无向图,其边数最多为:A. nB. n(n-1)/2C. n(n+1)/2D. n^2答案:B10. 一个长度为n的数组进行归并排序时,需要的辅助空间大小为:A. O(1)B. O(n)C. O(nlogn)D. O(n^2)答案:B二、填空题(每题2分,共10分)1. 在数据结构中,______是一种特殊的线性表,它的元素个数是固定的。
答案:数组2. 链表中,每个节点包含数据域和______。
《数据结构》期末考试试题及答案
![《数据结构》期末考试试题及答案](https://img.taocdn.com/s3/m/cb287d0866ec102de2bd960590c69ec3d5bbdbe0.png)
《数据结构》期末考试试题及答案一、单项选择题1. 数据结构是计算机科学的基础学科之一。
下列哪个选项正确描述了数据结构的定义?A. 数据结构是一种计算机程序B. 数据结构是一种存储和组织数据的方法C. 数据结构是一种人工智能技术D. 数据结构是一种操作系统答案:B2. 链表和数组是常见的数据结构,它们之间的主要区别是:A. 数组可以存储不同类型的数据,而链表只能存储相同类型的数据B. 数组的元素在内存中是连续存储的,而链表的元素在内存中是分散存储的C. 链表可以随机访问元素,而数组只能顺序访问元素D. 链表的插入和删除操作更高效,而数组的访问操作更高效答案:B3. 在二叉树中,每个节点最多可以有多少个子节点?A. 1B. 2C. 3D. 无限多个答案:B二、填空题1. 假设有一组数据 [5, 8, 3, 2, 9],按照从小到大的顺序进行冒泡排序的过程中,经过三次交换后的结果是__2__,__3__,__5__,__8__,__9__。
2. 请完成以下代码,实现栈的入栈和出栈操作:```pythonclass Stack:def __init__(self):self.stack = []def push(self, item):self.stack.append(item)def pop(self):if not self.is_empty():return self.stack.pop()def is_empty(self):# 示例代码s = Stack()s.push(1)s.push(2)s.push(3)print(s.pop()) # 输出 3print(s.pop()) # 输出 2print(s.is_empty()) # 输出 False ```答案:```pythonclass Stack:def __init__(self):self.stack = []def push(self, item):self.stack.append(item)def pop(self):if not self.is_empty():def is_empty(self):return len(self.stack) == 0# 示例代码s = Stack()s.push(1)s.push(2)s.push(3)print(s.pop()) # 输出 3print(s.pop()) # 输出 2print(s.is_empty()) # 输出 False```三、简答题1. 请简要介绍树的基本概念及常见的树结构。
数据结构期末考试题及答案
![数据结构期末考试题及答案](https://img.taocdn.com/s3/m/90551edf1b37f111f18583d049649b6648d709ce.png)
数据结构期末考试题及答案一、单项选择题(每题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. 栈的特点是___________,___________。
《数据结构》期末考试试卷试题及答案
![《数据结构》期末考试试卷试题及答案](https://img.taocdn.com/s3/m/8a584e45974bcf84b9d528ea81c758f5f61f2922.png)
《数据结构》期末考试试卷试题及答案第一部分:选择题(每题2分,共20分)1. 下面哪个数据结构是线性结构?A. 树B. 图C. 队列D. 网络流2. 下面哪个数据结构用于实现广度优先搜索算法?A. 栈B. 队列C. 散列表D. 堆3. 下面哪个数据结构用于实现深度优先搜索算法?A. 栈B. 队列C. 散列表D. 堆4. 下面哪个数据结构用于实现快速排序算法?A. 栈B. 队列C. 散列表D. 堆5. 下面哪个数据结构用于实现优先队列?A. 栈B. 队列C. 散列表D. 堆6. 下面哪个数据结构用于实现哈希表?A. 栈B. 队列C. 散列表D. 堆7. 下面哪个数据结构用于实现最小树算法?A. 栈B. 队列C. 散列表D. 堆8. 下面哪个数据结构用于实现拓扑排序算法?A. 栈B. 队列C. 散列表D. 堆9. 下面哪个数据结构用于实现最短路径算法?A. 栈B. 队列C. 散列表D. 堆10. 下面哪个数据结构用于实现并查集算法?A. 栈B. 队列C. 散列表D. 堆第二部分:填空题(每题2分,共20分)1. 链表是一种______数据结构。
2. 二叉树的节点最多有______个子节点。
3. 堆是一种特殊的______。
4. 散列表的查找效率取决于______。
5. 图的遍历算法包括______和______。
6. 快速排序算法的平均时间复杂度为______。
7. 哈希表中的冲突解决方法有______和______。
8. 最小树算法包括______和______。
9. 最短路径算法包括______和______。
10. 并查集算法用于解决______问题。
第三部分:简答题(每题10分,共50分)1. 请简述栈和队列的区别。
2. 请简述二叉搜索树的特点。
3. 请简述哈希表的原理。
4. 请简述图的深度优先搜索算法。
5. 请简述最小树算法的原理。
第四部分:编程题(每题20分,共50分)1. 编写一个函数,实现链表的插入操作。
《数据结构》期末考试试卷试题及答案
![《数据结构》期末考试试卷试题及答案](https://img.taocdn.com/s3/m/ca5b38939f3143323968011ca300a6c30c22f1de.png)
《数据结构》期末考试试卷试题及答案一、选择题(每题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)线性表:一个线性结构,其特点是数据元素之间存在一对一的线性关系。
数据结构期末练习题
![数据结构期末练习题](https://img.taocdn.com/s3/m/c2e82e77a8956bec0975e342.png)
数据结构练习题1一、单项选择题,在括号内填写所选择的标号(每小题1分,共12分)2. 以下说法错误的是()。
A. 抽象数据类型具有封装性。
B. 抽象数据类型具有信息隐蔽性。
C. 使用抽象数据类型的用户可以自己定义对抽象数据类型中数据的各种操作。
D. 抽象数据类型的一个特点是使用与实现分离。
3. 设有一个n n的对称矩阵A,将其上三角部分按行存放在一个一维数组B中,A[0][0]存放于B[0]中,那么第i行的对角元素A[i][i]存放于B中()处。
A. (i+3)*i/2B. (i+1)*i/2C. (2n-i+1)*i/2D. (2n-i-1)*i/24. 已知单链表A长度为m,单链表B长度为n,若将B联接在A的末尾,其时间复杂度应为()。
A. O(1)B. O(m)C. O(n)D. O(m+n)5. 假定一个链式队列的队头和队尾指针分别为front和rear,则判断队空的条件为( )。
A. front == rearB. front != NULLC. rear != NULLD. front == NULL7. 在一棵高度为h(假定树根结点的层号为0)的完全二叉树中,所含结点个数不小于( )。
A. 2h-1B. 2h+1C. 2h-1D. 2h8. 一棵树的广义表表示为a(b,c(e,f(g)),d),当用左子女-右兄弟链表表示时,右指针域非空的结点个数为( )。
A 1B 2C 3D 49. 向具有n个结点的、结构均衡的二叉搜索树中插入一个元素的时间复杂度大致为( )。
A. O(1)B. O(log2n )C. O(n)D. O(nlog2n)10. 具有n个顶点的有向无环图最多可包含( )条有向边。
A.n-1 B.n C.n(n-1)/2 D.n(n-1)11. 图的广度优先搜索类似于树的()次序遍历。
A. 先根B. 中根C. 后根D. 层次12. 如果将所有中国人按照生日(不考虑年份,只考虑月、日)来排序,那么使用下列排序算法中( )算法最快。
数据结构期末考试题及答案
![数据结构期末考试题及答案](https://img.taocdn.com/s3/m/589dab83ac51f01dc281e53a580216fc710a5304.png)
数据结构期末考试题及答案一、选择题(每题2分,共20分)1. 在数据结构中,线性表的顺序存储结构通常使用什么数据结构来实现?A. 链表B. 数组C. 栈D. 队列答案:B2. 以下哪个是二叉树的性质?A. 每个节点最多有两个孩子B. 每个节点最多有三个孩子C. 每个节点最多有四个孩子D. 每个节点最多有五个孩子答案:A3. 在图的遍历算法中,深度优先搜索(DFS)和广度优先搜索(BFS)的区别是什么?A. DFS使用队列,BFS使用栈B. DFS使用栈,BFS使用队列C. DFS和BFS都使用栈D. DFS和BFS都使用队列答案:B...20. 以下哪个排序算法的时间复杂度为O(n^2)?A. 冒泡排序B. 选择排序C. 插入排序D. 所有上述排序算法答案:D二、简答题(每题10分,共30分)1. 简述链表和数组的区别。
答案:链表和数组都是用来存储数据的线性数据结构。
数组是连续的内存空间,可以随机访问,但插入和删除操作效率较低;链表由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针,不支持随机访问,但插入和删除操作较为高效。
2. 什么是递归?请给出一个递归算法的例子。
答案:递归是一种算法设计技术,它允许函数调用自身来解决问题。
递归通常包含基本情况和递归情况。
例如,计算阶乘的递归算法:f(n) = n * f(n-1),其中基本情况是f(1) = 1。
...三、算法设计题(每题25分,共50分)1. 给定一个整数数组,请设计一个算法找出数组中的第k大元素。
答案:可以采用快速选择算法,类似于快速排序的划分过程,通过随机选择一个元素作为基准,将数组分为两部分,一部分包含比基准大的元素,另一部分包含比基准小的元素。
然后根据k与基准元素的位置关系,决定是继续在左侧子数组还是右侧子数组中进行查找。
2. 描述如何使用哈希表解决字符串匹配问题。
答案:哈希表可以用于实现字符串匹配的KMP算法。
首先,构建模式字符串的前缀函数,该函数用于记录模式字符串中每个位置的最长相同前缀和后缀的长度。
数据结构期末考试题及答案
![数据结构期末考试题及答案](https://img.taocdn.com/s3/m/ed1773219a6648d7c1c708a1284ac850ac02045d.png)
数据结构期末考试题及答案一、选择题(每题2分,共10题)1. 数据结构是指()A. 存储和组织数据的方式B. 对数据进行计算和处理的方法C. 数据的物理表示形式D. 数据的逻辑结构答案:A. 存储和组织数据的方式2. 在数据结构中,栈是一种()A. 先进先出的数据结构B. 后进先出的数据结构C. 随机存取的数据结构D. 按键值查找的数据结构答案:B. 后进先出的数据结构3. 下列哪种数据结构不支持随机访问?()A. 队列B. 栈C. 数组D. 链表答案:D. 链表4. 在二叉树中,每个节点最多可以有几个子节点?()A. 0B. 1C. 2D. 无限多答案:C. 25. 在图的表示方法中,邻接矩阵适用于()A. 稠密图B. 稀疏图C. 有向图D. 无向图答案:A. 稠密图6. 下列排序算法中,最坏情况时间复杂度为O(nlogn)的是()A. 冒泡排序B. 插入排序C. 快速排序D. 选择排序答案:C. 快速排序7. 广度优先搜索算法用于()A. 求最短路径B. 求全排列C. 求最小生成树D. 求图的连通分量答案:A. 求最短路径8. 哈希表的查找时间复杂度为()A. O(1)B. O(n)C. O(logn)D. O(n^2)答案:A. O(1)9. AVL树是一种()A. 无序树B. 有序树C. 平衡树D. 非平衡树答案:C. 平衡树10. 以下哪个不属于基本的查找算法?()A. 二分查找B. 插值查找C. 散列查找D. 顺序查找答案:C. 散列查找二、填空题(每题4分,共4题)11. 下列不是线性表的是()答案:二叉树12. 在冒泡排序中,每一轮的比较次数是________答案:n-113. 在堆排序中,堆的建立时间复杂度为________答案:O(n)14. 从一个顶点到其余各顶点的最短路径算法是________答案:Dijkstra算法三、简答题(每题10分,共3题)15. 请简要说明栈的应用场景,并给出一个具体实例。
数据结构期末复习题(有答案)
![数据结构期末复习题(有答案)](https://img.taocdn.com/s3/m/ae87d2d149649b6648d74706.png)
一、单选题1. 从物理上可以把数据结构分为(B)两大类。
A. 动态结构、静态结构B. 顺序结构、链式结构C. 线性结构、非线性结构D. 初等结构、构造型结构2. 若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为(C )(1≤i≤n+1)。
A. O(0)B. O(1)C. O(n)D. O(n2)3. 链表不具有的特点是(B)。
A. 插入、删除不需要移动元素B. 可随机访问任一元素C. 不必事先估计存储空间D. 所需空间与线性长度成正比4. 下列排序算法中(C)排序在一趟结束后不一定能选出一个元素放在其最终位置上。
A. 选择B. 起泡C. 归并D. 堆5. 在下列排序算法中,哪一个算法的时间复杂度与初始排序无关(D )。
A. 插入排序B. 起泡排序C. 快速排序D. 选择排序6. 一个栈的输入序列为1,2,3,…,n,若输出序列的第一个元素是i,则第j个输出元素是(D)。
A. i-j-1B. i-jC. j-i+1D. 不确定7. 输入序列为ABC,可以变为BCA时,经过的栈操作为(D )。
A. push,pop,push,pop,push,popB. push,push,push,pop,pop,popC. push,push,pop,pop,push,popD. push,push,pop,push,pop,pop8. 有六个元素6 5 4 3 2 1 的顺序进栈,下列(C )不是合法的出栈序列。
A. 5 4 3 6 1 2B. 4 5 3 1 2 6C. 3 4 6 5 2 1D. 2 3 4 1 5 69. 串的长度是指(B )。
A. 串中所含不同字母的个数B. 串中所含字符的个数C. 串中所含不同字符的个数D. 串中所含非空格字符的个数10. 设二维数组A[1.. m,1.. n](即m行n列)按行存储在数组B[1.. m*n]中,则二维数组元素A[i,j]在一维数组B中的下标为( A)。
《数据结构》期末考试试题及答案
![《数据结构》期末考试试题及答案](https://img.taocdn.com/s3/m/f8d25d6a77c66137ee06eff9aef8941ea76e4bd7.png)
《数据结构》期末考试试题及答案一、选择题(每题2分,共20分)1. 下列哪种数据结构是线性结构?A. 栈B. 树C. 队列D. 图答案:A2. 在计算机科学中,什么是最基本的数据结构?A. 数组B. 链表C. 栈D. 树答案:C3. 下列哪种操作的时间复杂度是O(1)?A. 在链表中插入元素B. 在数组中查找元素C. 在树中删除节点D. 在图中寻找最短路径答案:B4. 下列哪种数据结构常常用于实现栈和队列?A. 数组B. 链表C. 树D. 图答案:A5. 下列哪种数据结构是有序的?A. 栈B. 队列C. 链表D. 图答案:C二、填空题(每题2分,共20分)1. 在数据结构中,栈是一种后进先出(____)的数据结构。
答案:线性表2. 队列是一种先进先出(____)的数据结构。
答案:线性表3. 链表是一种____数据结构,由一系列节点组成。
答案:非线性4. 二叉树是一种特殊的树,它的每个节点最多有两个____。
答案:子节点5. 哈希表是通过____函数将关键字映射到表中的位置来访问数据。
答案:哈希三、判断题(每题2分,共20分)1. 树是一种线性结构。
()答案:错误2. 链表的插入和删除操作时间复杂度都是O(1)。
()答案:错误3. 图是一种线性结构。
()答案:错误4. 哈希表是一种基于顺序结构的的数据结构。
()答案:错误5. 在数据结构中,时间复杂度O(n)表示算法随着输入规模的增加而线性增长。
()答案:正确四、简答题(每题10分,共30分)1. 请简述栈和队列的特点和应用场景。
答案:栈是一种后进先出(LIFO)的数据结构,应用场景包括函数调用栈、表达式求值等。
队列是一种先进先出(FIFO)的数据结构,应用场景包括任务队列、缓冲区等。
2. 请简述链表的优缺点。
答案:链表的优点包括动态扩容、插入和删除操作时间复杂度为O(1)、可以方便地实现各种复杂数据结构。
缺点包括占用内存空间较大、不如数组支持随机访问。
《数据结构》期末考试试题及答案
![《数据结构》期末考试试题及答案](https://img.taocdn.com/s3/m/337fdeb3370cba1aa8114431b90d6c85ec3a8824.png)
《数据结构》期末考试试题及答案一、选择题(每题2分,共20分)1. 下列哪一个不是线性结构的基本特征?A. 有且只有一个根结点B. 每个结点最多有一个前驱和一个后继C. 有且只有一个叶子结点D. 有序对中第一个元素是根结点答案:C2. 在单链表中,存储元素的数据域称为元素的哪个部分?A. 指针域B. 数据域C. 结点域D. 头结点答案:B3. 在顺序存储结构中,数据元素之间的逻辑关系由哪个因素决定?A. 数据元素的存储顺序B. 数据元素的存储位置C. 数据元素的类型D. 数据元素的大小答案:A4. 下列哪种排序算法的时间复杂度不是O(nlogn)?A. 快速排序B. 归并排序C. 堆排序D. 冒泡排序答案:D5. 在二叉树中,具有度为2的结点的个数是n0,度为0的结点个数是n2,则有()。
A. n0 = n2 - 1B. n0 = n2 + 1C. n0 = n2D. n0 = n2 + 2答案:B6. 在线索二叉树中,哪个结点被称为线索结点?A. 有左子树的结点B. 有右子树的结点C. 既没有左子树也没有右子树的结点D. 具有左右子树的结点答案:C7. 在双向链表中,查找结点的时间复杂度是()。
A. O(1)B. O(n)C. O(nlogn)D. O(n^2)答案:B8. 在栈的操作中,下列哪个操作是非法的?A. 先进先出B. 后进先出C. 可以插入任意元素D. 可以删除任意元素答案:D9. 在顺序表中进行插入操作时,平均移动次数为()。
A. 0B. n/2C. nD. n-1答案:C10. 在下列排序算法中,哪个算法是不稳定的?A. 冒泡排序B. 快速排序C. 插入排序D. 归并排序答案:B二、填空题(每题2分,共20分)1. 线性表的顺序存储结构称为顺序表,其基本特点是()。
答案:元素顺序存储2. 在单链表中,每个结点包括两个域:数据域和()。
答案:指针域3. 在二叉树中,度为0的结点称为(),度为2的结点称为()。
数据结构期末考试题及答案
![数据结构期末考试题及答案](https://img.taocdn.com/s3/m/3e3f286bf02d2af90242a8956bec0975f565a476.png)
数据结构期末考试题及答案一、单项选择题(每题2分,共20分)1. 在数据结构中,算法的时间复杂度是指()。
A. 算法程序的长度B. 算法执行时所需要的基本运算次数C. 算法程序中的语句数D. 算法程序中的指令数答案:B2. 线性表的顺序存储结构和链式存储结构相比,其主要优点是()。
A. 插入和删除操作快B. 存储密度高C. 存储空间可以动态申请D. 存储空间可以预先分配答案:D3. 在一个长度为n的顺序表中,采用二分查找法查找第k小的元素,最坏情况下需要比较的次数是()。
A. nB. n/2C. log2(n+1)D. log2n答案:D4. 一个栈的入栈序列为1, 2, 3, 4, 5,下列序列中哪一个不可能是栈的输出序列()。
A. 5, 4, 3, 2, 1B. 3, 2, 4, 1, 5C. 5, 4, 2, 3, 1D. 1, 2, 5, 3, 4答案:D5. 在二叉树的前序遍历、中序遍历和后序遍历中,根节点总是()。
A. 第一个被访问B. 第二个被访问C. 第三个被访问D. 最后一个被访问答案:A6. 在一个有n个顶点的无向图中,其边的最大数量是()。
A. n(n-1)/2B. n(n+1)/2C. n^2D. 2n答案:A7. 哈夫曼编码是一种()。
A. 静态编码B. 动态编码C. 无损编码D. 有损编码答案:C8. 一个图的邻接矩阵表示法中,若顶点i到顶点j有一条边,则矩阵的第i行第j列的元素为()。
A. 1B. 0C. 边的权重D. 顶点j的度数答案:C9. 在数据库中,关系模式R(U, F),其中U={A, B, C, D},F={(A, B)→C, C→D},下列哪个关系模式是R的候选键()。
A. {A, B}B. {A, C}C. {B, C}D. {C, D}答案:A10. 快速排序算法的平均时间复杂度是()。
A. O(n^2)B. O(nlogn)C. O(n^3)D. O(n)答案:B二、填空题(每题2分,共20分)1. 在数据结构中,递归算法的时间复杂度通常可以用______来描述。
数据结构期末考试试卷及答案
![数据结构期末考试试卷及答案](https://img.taocdn.com/s3/m/d39f79fc50e79b89680203d8ce2f0066f433641e.png)
数据结构期末考试试卷及答案一、选择题(每题2分,共20分)1. 下列哪一个不是线性结构的特点?A. 有且只有一个根结点B. 每个结点最多有一个前驱和一个后继C. 有多个根结点D. 有且只有一个叶子结点答案:C2. 在单链表中,头结点的作用是()A. 作为链表的起点B. 作为链表的终点C. 存储链表中的数据元素D. 作为链表中的第一个元素答案:A3. 在顺序表中,插入一个元素的时间复杂度是()A. O(1)B. O(n)C. O(logn)D. O(n^2)答案:B4. 下列哪种排序算法的平均时间复杂度最高?A. 冒泡排序B. 快速排序C. 直接插入排序D. 希尔排序答案:C5. 在二叉树中,具有3个结点的二叉树有()种不同的形态。
A. 2B. 3C. 4D. 5答案:C6. 下列哪种情况不适合使用哈希表?A. 查找速度快B. 数据量较大C. 数据量较小D. 数据元素关键字分布均匀答案:C7. 在图的遍历过程中,下列哪种遍历方法属于深度优先遍历?A. 广度优先遍历B. 深度优先遍历C. 混合遍历D. 随机遍历答案:B8. 下列哪种数据结构不适用于实现栈?A. 顺序表B. 链表C. 树D. 图答案:C9. 在双向链表中,删除一个元素的时间复杂度是()A. O(1)B. O(n)C. O(logn)D. O(n^2)答案:A10. 下列哪种情况不适合使用队列?A. 数据元素先进先出B. 数据元素后进先出C. 数据元素随机进出D. 数据元素按顺序进出答案:B二、填空题(每题2分,共20分)1. 线性表是具有______个数据元素的有限序列。
答案:n2. 在单链表中,每个结点包含两个域:数据域和______域。
答案:指针3. 在顺序表中,插入一个元素的时间复杂度是______。
答案:O(n)4. 快速排序的平均时间复杂度为______。
答案:O(nlogn)5. 哈希表中的冲突指的是______。
答案:不同的关键字对应同一存储位置6. 在图的遍历过程中,深度优先遍历算法使用的数据结构是______。
数据结构期末考试试题及答案
![数据结构期末考试试题及答案](https://img.taocdn.com/s3/m/951db21cf6ec4afe04a1b0717fd5360cbb1a8d78.png)
数据结构期末考试试题及答案一、选择题1. 以下哪种数据结构是线性存储结构?A. 树B. 图C. 链表D. 哈希表答案:C2. 在二叉搜索树中,若删除一个节点,则需要进行以下哪些操作?A. 仅删除操作B. 删除操作和调整树结构操作C. 插入操作D. 忽略操作答案:B3. 快速排序算法的时间复杂度在最坏情况下是:A. O(log n)B. O(n)C. O(n log n)D. O(n^2)答案:D4. 下面哪个排序算法适用于大数据量的排序?A. 冒泡排序B. 快速排序C. 插入排序D. 归并排序答案:D5. 哈夫曼树是一种特殊的:A. 二叉树B. 多叉树C. 哈希表D. 图答案:A二、填空题1. 链表的基本操作包括__________、__________、__________和__________。
答案:创建、插入、删除、查找2. 栈是一种后进先出(LIFO)的数据结构,其添加元素的操作称为__________,移除元素的操作称为__________。
答案:push、pop3. 在图的遍历算法中,按照遍历方向的不同,可以分为__________和__________。
答案:深度优先遍历、广度优先遍历4. 红黑树是一种自平衡的__________。
答案:二叉搜索树4. 散列表(哈希表)的主要优点是__________。
答案:查找速度快三、简答题1. 请简述数组和链表的区别及各自的优缺点。
答案:数组是一种顺序存储结构,通过索引直接访问元素,访问速度快,但是插入和删除操作需要移动大量元素,效率较低。
链表是一种非顺序存储结构,通过指针连接元素,插入和删除操作只需要改变指针,效率较高,但是访问元素需要从头开始遍历,速度较慢。
2. 请解释二分查找法的工作原理及其适用条件。
答案:二分查找法是一种在有序数组中查找特定元素的算法。
工作原理是将数组分为两部分,判断目标值与中间元素的大小关系,然后在相应的一半中继续查找,重复此过程,直到找到目标值或范围缩小到无法再分。
数据结构期末考试题及答案
![数据结构期末考试题及答案](https://img.taocdn.com/s3/m/512c04f6dbef5ef7ba0d4a7302768e9950e76e15.png)
数据结构期末考试题及答案一、单项选择题(每题3分,共30分)1. 在数据结构中,最基本的数据结构是()。
A. 线性结构B. 树形结构C. 图形结构D. 非线性结构答案:A2. 栈是一种特殊的线性表,其特点是()。
A. 先进先出B. 先进后出C. 后进先出D. 后进后出答案:C3. 在二叉树中,度为2的结点数为n,度为1的结点数为m,度为0的结点数为p,则m的值为()。
A. n-1B. n+1C. p-1D. p+1答案:A4. 哈希表的构造方式是()。
A. 线性结构B. 树形结构C. 链式结构D. 索引结构答案:D5. 在图的遍历过程中,深度优先搜索算法采用的是()。
A. 队列B. 栈C. 链表D. 树答案:B6. 快速排序算法的时间复杂度在最坏情况下是()。
A. O(n)B. O(nlogn)C. O(n^2)D. O(2^n)答案:C7. 以下哪个排序算法是不稳定的排序算法()。
A. 冒泡排序B. 快速排序C. 归并排序D. 堆排序答案:B8. 在数据库中,索引通常采用哪种数据结构()。
A. 线性表B. 树形结构C. 图形结构D. 散列表答案:B9. 以下哪个不是二叉搜索树的性质()。
A. 左子树上所有结点的值都小于它的根结点的值B. 右子树上所有结点的值都大于它的根结点的值C. 左、右子树也分别为二叉搜索树D. 所有结点的值都相等答案:D10. 在图的表示方法中,邻接矩阵适用于表示()。
A. 稠密图B. 稀疏图C. 有向图D. 无向图答案:A二、填空题(每题4分,共20分)1. 在数据结构中,一个算法的空间复杂度是指算法在执行过程中需要的___________。
答案:存储空间2. 堆排序中,调整堆的过程称为___________。
答案:堆化3. 在图的遍历中,广度优先搜索使用的辅助数据结构是___________。
答案:队列4. 一个长度为n的链表,删除第i个元素的时间复杂度是___________。
数据结构期末考试试题(含答案)
![数据结构期末考试试题(含答案)](https://img.taocdn.com/s3/m/33cc8fcaf71fb7360b4c2e3f5727a5e9856a271a.png)
数据结构期末考试试题(含答案)数据结构期末考试试题(含答案)第一题:多项式相加(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)。
数据结构期末考试题及答案
![数据结构期末考试题及答案](https://img.taocdn.com/s3/m/f6b9917ba200a6c30c22590102020740bf1ecd68.png)
数据结构期末考试题及答案一、选择题(每题2分,共20分)1. 下列哪种数据结构是先进先出(FIFO)的?A. 栈B. 队列C. 树D. 图2. 在链表中进行插入和删除操作时,以下哪种操作的时间复杂度是O(1)?A. 在链表头部插入B. 在链表尾部插入C. 在链表中间插入D. 在链表任意位置插入或删除3. 下列哪种排序算法的平均时间复杂度是O(n log n)?A. 冒泡排序B. 选择排序C. 快速排序D. 插入排序4. 在二叉树中,下列哪种遍历方法先访问根节点?A. 前序遍历B. 中序遍历C. 后序遍历D. 层次遍历5. 下列哪种图中的边没有方向?A. 有向图B. 无向图C. 树D. 图二、填空题(每题2分,共20分)6. 在顺序栈中,栈满时进行入栈操作会产生__________现象。
7. 在顺序队列中,队满时进行入队操作会产生__________现象。
8. 在二叉树中,度为0的节点称为__________节点。
9. 快速排序算法的时间复杂度为__________。
10. 图的存储结构主要有__________、__________和__________三种。
三、判断题(每题2分,共20分)11. 在链表中,删除节点时必须先找到待删除节点的前一个节点。
()12. 二分查找算法的时间复杂度为O(n)。
()13. 在二叉树中,度为2的节点个数等于度为0的节点个数减1。
()14. 在哈希表中,不同的关键字可能会映射到同一个位置,这种现象称为冲突。
()15. 图的邻接矩阵表示法适用于稀疏图。
()四、解答题(共40分)16. 请简述快速排序算法的基本思想和步骤。
(10分)17. 请证明:在二叉树中,度为0的节点个数等于度为2的节点个数加1。
(10分)18. 请编写一个函数,实现将一个链表逆序的功能。
(10分)19. 请设计一个算法,实现将一个无向图的邻接矩阵转换为邻接表。
(10分)### 数据结构期末考试答案一、选择题1. B2. A3. C4. A5. B二、填空题6. 上溢7. 下溢8. 叶子节点9. O(n log n)10. 邻接矩阵、邻接表、边集数组三、判断题11. √12. ×(二分查找算法的时间复杂度为O(log n))13. √14. √15. ×(图的邻接矩阵表示法适用于稠密图)四、解答题16. 快速排序算法的基本思想是:选择一个基准元素,将比基准元素小的元素放在其左边,比基准元素大的元素放在其右边,然后递归地对左右两个子区间进行快速排序。
数据结构期末考试试题及答案
![数据结构期末考试试题及答案](https://img.taocdn.com/s3/m/fe923044f08583d049649b6648d7c1c708a10baa.png)
数据结构期末考试试题及答案一、选择题(每题2分,共20分)1. 在数据结构中,线性结构的特点是什么?A. 元素之间存在一对一的关系B. 元素之间存在一对多的关系C. 元素之间存在多对多的关系D. 元素之间存在一对一或多对多的关系2. 栈(Stack)是一种特殊的线性表,其特点是:A. 允许在表的任一位置进行插入和删除操作B. 只能在表的首端进行插入和删除操作C. 只能在表的末端进行插入和删除操作D. 插入和删除操作没有特定的限制3. 以下哪个算法是排序算法?A. 快速排序B. 深度优先搜索C. 广度优先搜索D. 二分查找4. 哈希表解决冲突的常用方法不包括:A. 开放寻址法B. 链地址法C. 二分查找法D. 再散列法5. 在图的遍历算法中,深度优先搜索(DFS)使用的是:A. 栈B. 队列C. 链表D. 树...(此处省略其他选择题)二、简答题(每题10分,共30分)1. 请简述二叉树的三种遍历方法及其特点。
2. 什么是平衡二叉树?请说明它与普通二叉树的区别。
3. 解释什么是图的邻接矩阵表示法和邻接表表示法,并比较它们的优缺点。
三、计算题(每题15分,共30分)1. 给定一个数组A[1...n],请写出一个时间复杂度为O(n)的算法,找出数组中的最大值和最小值。
2. 假设有一个链表,链表中的节点按照值递增的顺序排列,请设计一个算法删除链表中所有重复的节点。
四、编程题(每题20分,共20分)1. 编写一个函数,实现二叉搜索树的插入操作,并保证树的平衡。
数据结构期末考试答案一、选择题1. C2. B3. A4. C5. A...(此处省略其他选择题答案)二、简答题1. 二叉树的三种遍历方法包括前序遍历、中序遍历和后序遍历。
前序遍历首先访问根节点,然后递归遍历左子树,最后递归遍历右子树。
中序遍历首先递归遍历左子树,然后访问根节点,最后递归遍历右子树。
后序遍历首先递归遍历左子树,然后递归遍历右子树,最后访问根节点。
数据结构期末复习题库(215道)
![数据结构期末复习题库(215道)](https://img.taocdn.com/s3/m/b898d9e403d8ce2f006623f2.png)
数据结构期末复习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 个()的有限序列。
《数据结构》期末复习题及参考答案
![《数据结构》期末复习题及参考答案](https://img.taocdn.com/s3/m/60175616aeaad1f347933fb9.png)
《数据结构》复习资料一单选题 (共48题,总分值0分 )1. 设用链表作为栈的存储结构,则退栈操作(0 分)A. 必须判别栈是否为满B. 必须判别栈是否为空C. 判别栈元素的类型D. 对栈不作任何判别2. 下面关于m阶B树说法正确的是()。
①每个结点至少有两棵非空子树;②树中每个结点至多有m-1个关键字;③所有叶子在同一层上;④当插入一个数据项引起B树结点分裂后,树长高一层。
(0 分)A. ①②③B. ②③C. ②③④D. ③3. 下列关于文件的说法,错误的是()。
(0 分)A. 选择文件的组织方式时应考虑外存的性质和容量B. 不定长文件指的是总长度可变的文件C. 对文件的操作主要是维护和检索D. 文件的存储结构指的是文件在外存上的组织方式4. 设无向图的顶点个数为n,则该图最多有()条边。
(0 分)A. n-1B. n(n-1)/2C. n(n+1)/2D. n25. 设广义表L=((a,()),b,(c,d,e)),则Head(Tail(Tail(L)))的值为()。
(0 分)A. bB. cC. (c)D. (c,d,e)6. 设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
(0 分)A. 688B. 678C. 692D. 6967. 设某无向图中有n个顶点e条边,则该无向图中所有顶点的入度之和为(0 分)A. nB. eC. 2nD. 2e8. 广义表(a,(b,(),c))的深度为()。
(0 分)A. 1B. 2C. 3D. 49. 设有向图G中有五个顶点,各顶点的度分别为3、2、2、1、2,则G中弧数为()。
(0 分)A. 4条B. 5条C. 6条D. 无法确定10. 若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为(0 分)A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,311. 具有n个顶点的有向强连通图最少有()条弧。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构期末复习练习题第一章绪论一、单选题1. 一个数组元素a[i]与__A__的表示等价。
A、 *(a+i)B、 a+iC、 *a+iD、 &a+i2. 对于两个函数,若函数名相同,但只是____C____不同则不是重载函数。
A、参数类型B、参数个数C、函数类型3. 若需要利用形参直接访问实参,则应把量形参变说明为__ _B___参数A、指针B、引用C、值4. 下面程序段的时间复杂度为____C____。
for(int i=0; i<m; i++)for(int j=0; j<n; j++)a[i][j]=i*j;A、 O(m2)B、 O(n2)C、 O(m*n)D、 O(m+n)5. 执行下面程序段时,执行S语句的次数为___D_____。
for(int i=1; i<=n; i++)for(int j=1; j<=i; j++)S;A、 n2B、 n2/2C、 n(n+1)D、 n(n+1)/26. 下面算法的时间复杂度为____B_____。
int f( unsigned int n ) {if ( n==0 || n==1 ) return 1; else return n*f(n-1);}A、 O(1)B、 O(n)C、 O(n2)D、 O(n!)二、填空题1. 数据的逻辑结构被分为集合结构、线性结构、树型结构、图形结构_四种。
2. 数据的存储结构被分为 _顺序、链接、索引、散列四种。
3. 在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着__ 1:1、1:N、M:N ___的联系。
4. 一种抽象数据类型包括数据定义、操作声明_两个部分。
5. 当一个形参类型的长度较大时,应最好说明为__引用形参 ( 或指针形参 )_______,以节省参数值的传输时间和存储参数的空间。
6. 当需要用一个形参访问对应的实参时,则该形参应说明为___引用类型 ( 或指针类型_______。
7. 在函数中对引用形参的修改就是对相应___实参_____的修改,对___值_________形参的修改只局限在该函数的内部,不会反映到对应的实参上。
8. 当需要进行标准I/O操作时,则应在程序文件中包含___ iostream.h _____________头文件,当需要进行文件I/O操作时,则应在程序文件中包含____ fstream.h ____________头文件。
9. 在包含有______ stdlib.h __________头文件的程序文件中,使用____ rand( ) %21____________能够产生出0~20之间的一个随机整数。
10. 一个数组a所占有的存储空间的大小即数组长度为__ sizeof(a)__________,下标为i的元素a[i]的存储地址为____ a+i*sizeof(a[0])______,或者为___ a+i ___。
11. 函数重载要求______参数类型、数量 _或___次序_________有所不同。
12. 对于双目操作符,其重载函数带有_____2_____个参数,其中至少有一个为_____用户自定义_______的类型。
13. 若对象ra和rb中至少有一个是属于用户定义的类型,则执行ra==rb时,需要调用_____= =_____重载函数,该函数的第一个参数应与____ra______的类型相同,第二个参数应与______rb____的类型相同。
14. 从一维数组a[n]中顺序查找出一个最大值元素的时间复杂度为__ O(n) ____,输出一个二维数组b[m][n]中所有元素值的时间复杂度为__ O(m*n)_ ___。
15. 在下面程序段中,s=s+p语句的执行次数为__n______,p*=j语句的执行次数为____ n(n+1)/2___,该程序段的时间复杂度为__O(n2)_______。
int i=0,s=0;while(++i<=n) {int p=1;for(int j=1;j<=i;j++) p*=j;s=s+p;}16. 一个算法的时间复杂度为(3n2+2n log2n+4n-7)/(5n),其数量级表示为___ O(n)_____。
第二章线性表一、单选题1.在一个长度为n的顺序存储线性表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要从后向前依次后移B个元素。
A、n-iB、n-i+1C、n-i-1D、i2.在一个长度为n的顺序存储线性表中,删除第i个元素(1≤i≤n+1)时,需要从前向后依次前移A个元素。
A、n-iB、n-i+1C、n-i-1D、i3.在一个长度为n的线性表中顺序查找值为x的元素时,查找时的平均查找长度(即x同元素的平均比较次数,假定查找每个元素的概率都相等)为C。
A、nB、n/2C、(n+1)/2D、(n-1)/24.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行B。
A、HL = p; p->next = HL;B、p->next = HL; HL = p;C、p->next = HL; p = HL;D、p->next = HL->next; HL->next = p;5.在一个单链表HL中,若要在指针q所指的结点的后面插入一个由指针p所指的结点,则执行D。
A、q->next = p->next ; p->next = q;B 、p->next = q->next; q = p;C 、q->next = p->next; p->next = q;D 、p->next = q->next ; q->next = p;6.在一个单链表HL 中,若要删除由指针q 所指向结点的后继结点,则执行 C 。
A 、p = q->next ; p->next = q->next;B 、p = q->next ; q->next = p;C 、p = q->next ; q->next = p->next;D 、q->next = q->next->next; q->next = q;二、填空题1.在线性表的单链接存储结构中,每个结点包含有两个域,一个叫 数据 域,另一个叫 指针 域。
2.在下面数组a 中链接存储着一个线性表,表头指针为a[0].next ,则该线性表为 。
3.对于一个长度为n 的顺序存储的线性表,在表头插入元素的时间复杂度为 ,在表尾插入元素的时间复杂度为 。
4.对于一个长度为n 的单链接存储的线性表,在表头插入元素的时间复杂度为 ,在表尾插入元素的时间复杂度为 。
5.在线性表的顺序存储中,若一个元素的下标为i ,则它的前驱元素的下标为 ,后继元素的下标为 。
6.在线性表的单链接存储中,若一个元素所在结点的地址为p ,则其后继结点的地址为 ,若假定p 为一个数组a 中的下标,则其后继结点的下标为 。
7.在循环单链表中,最后一个结点的指针指向 结点。
8.在双向链表中每个结点包含有两个指针域,一个指向其 结点,另一个指向其 结点。
9.在循环双向链表中表头结点的左指针域指向 结点,最后一个结点的右指针域指向 结点。
10.在以HL 为表头指针的带表头附加结点的单链表和循环单链表中,链表为空的条件分别为 和 。
三、应用题1.在下面的每个程序段中,假定线性表La 的类型为List ,元素类型ElemType 为int ,并假定每个程序段是连续执行的,试写出每个程序段执行后所得到的线性表La 。
(1) InitList(La);int a[]={48,26,57,34,62,79};for(i=0; i<6; i++) InsertFront(La,a[i]);TraverseList(La);(2) InitList(La);a data nextfor(i=0; i<6; i++) Insert(La,a[i]);TraverseList(La);(3) ClearList(La);for(i=0; i<6; i++) InsertRear(La,a[i]);Delete(La, a[5]);Sort(La);Insert(La,a[5]/2);TraverseList(La);2.写出下面函数被调用执行后,得到的以HL为表头指针的单链表中的数据元素序列。
void AA(LNode * & HL){InitList(HL);InsertRear(HL,30);InsertRear(HL,50);int a[5] = {15,8,9,26,12};for ( int i=0; i<5; i++ ) InsertFront(HL,a[i]);}3.对于List类型的线性表,编写出下列每个算法。
(1) 从线性表中删除具有最小值的元素并由函数返回,空出的位置由最后一个元素填补,若线性表为空则显示出错信息并退出运行。
(2) 从线性表中删除第i个元素并由函数返回。
(3) 向线性表中第i个元素位置插入一个元素。
(4) 从线性表中删除具有给定值x的所有元素。
4.对于结点类型为LNode的单链表,编写出下列每个算法。
(1) 删除单链表中的第i个结点。
(2) 在有序单链表中插入一个元素x的结点。
(3) 从单链表中查找出所有元素的最大值,该值由函数返回,若单链表为空,则显示出错信息并停止运行。
(4)统计出单链表中结点的值等于给定值x的结点数。
第三章稀疏矩阵和广义表一、单选题1. 在稀疏矩阵的带行指针向量的链接存储中,每个行单链表中的结点都具有相同的___A____。
A、行号B、列号C、元素值D、地址2. 设一个广义表中结点的个数为n,则求广义表深度算法的时间复杂度为___B____。
A、O(1)B、O(n)C、O(n2)D、O(log2n)二、填空题1. 在一个稀疏矩阵中,每个非零元素所对应的三元组包括该元素的________、________和________三项。
2. 在稀疏矩阵所对应的三元组线性表中,每个三元组元素按________为主序、________为辅序的次序排列。
3. 在初始化一个稀疏矩阵的函数定义中,矩阵形参应说明为________参数。
4. 在稀疏矩阵的顺序存储中,利用一个数组来存储非零元素,该数组的长度应________对应三元组线性表的长度。
5.在稀疏矩阵的带行指针向量的链接存储中,每个结点包含有________个域,在相应的十字链接存储中,每个结点包含有________个域。