数据结构考试试题库含答案解析
数据结构期末试题及答案

数据结构期末试题及答案一、单项选择题(每题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. 链表中,每个节点包含数据域和______。
数据结构期末考试题及答案

数据结构期末考试题及答案一、单项选择题(每题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. 栈的特点是___________,___________。
数据结构试题集(包含答案-完整版)

数据结构试题集(包含答案-完整版)数据结构试题集(包含答案-完整版)1. 单选题1) 数据结构是一种()。
a) 存储结构b) 算法c) 数据模型d) 网络答案:c) 数据模型解析:数据结构是一种用于组织和存储数据的方式,描述了数据之间的关系以及对数据的操作。
2) 以下哪种数据结构可以通过索引直接访问元素?a) 链表b) 队列c) 栈d) 数组答案:d) 数组解析:数组是一种线性数据结构,可以通过索引直接访问指定位置的元素。
2. 多选题1) 哪些数据结构属于非线性结构?()a) 队列b) 树c) 栈d) 图答案:b) 树d) 图解析:线性结构中的元素存在一对一的关系,非线性结构中的元素存在一对多或多对多的关系,树和图属于非线性结构。
2) 下列哪些操作可以在栈上进行?()a) 入栈b) 出栈c) 查找d) 删除答案:a) 入栈b) 出栈解析:栈是一种后进先出(LIFO)的数据结构,只能在栈顶进行插入和删除操作。
3. 简答题1) 请简要介绍线性表和非线性表。
答案:线性表是数据元素的一个有限序列,元素之间存在一对一的关系。
非线性表是指元素之间存在一对多或多对多的关系,如树和图。
2) 请解释什么是时间复杂度和空间复杂度。
答案:时间复杂度是衡量算法执行效率的度量,表示算法的运行时间随输入规模增长的速度。
空间复杂度是指算法执行过程中所需的存储空间随输入规模增长的速度。
4. 编程题题目:实现一个栈,包含push、pop和getMin三个操作,要求时间复杂度为O(1)。
答案:class MinStack:def __init__(self):self.stack = []self.min_stack = []def push(self, x):self.stack.append(x)if not self.min_stack or x <= self.min_stack[-1]:self.min_stack.append(x)def pop(self):if self.stack.pop() == self.min_stack[-1]:self.min_stack.pop()def getMin(self):return self.min_stack[-1]解析:在栈的基础上,使用一个辅助栈min_stack来记录当前栈中的最小值。
数据结构试题及答案

数据结构试题及答案一、选择题1. 下列哪项不是线性结构的特点?A. 有且只有一个根节点B. 每个节点最多有一个前驱和一个后继C. 至少有一个节点D. 每个节点最多有一个前驱和多个后继答案:D解析:线性结构的特点包括有且只有一个根节点、每个节点最多有一个前驱和一个后继、至少有一个节点。
选项D描述的是非线性结构的特点。
2. 在单链表中,增加一个头节点的作用是()A. 便于首元节点的插入和删除操作B. 便于首元节点的访问C. 便于链表的操作D. 便于链表的删除答案:A解析:在单链表中,增加一个头节点可以使得首元节点的插入和删除操作更加方便,避免了首元节点特殊情况的处理。
3. 下面哪一个不是栈的基本运算?A. 入栈B. 出栈C. 初始化栈D. 求栈顶元素答案:C解析:栈的基本运算包括入栈、出栈、求栈顶元素和判断栈空。
初始化栈是创建栈的过程,不属于基本运算。
二、填空题4. 在顺序表中,元素之间的逻辑关系是由_______表示的。
答案:物理位置解析:顺序表中,元素之间的逻辑关系是通过物理位置来表示的。
每个元素在内存中占据连续的存储空间。
5. 设栈S的初始状态为空。
若元素序列为ABCDEF,当元素序列的进栈和退栈操作交叉进行时,下列序列中不可能出现在栈S中的是_______。
答案:BACF解析:当元素序列的进栈和退栈操作交叉进行时,栈中可能出现的序列有很多种,但BACF不可能是栈中出现的序列,因为元素C在元素F之前进栈,但F在C之前出栈,违反了栈的后进先出原则。
三、判断题6. 线性表是一种随机存取结构,因此可以随机访问表中的任一元素。
()答案:正确解析:线性表是一种随机存取结构,支持随机访问表中的任一元素,时间复杂度为O(1)。
7. 在双向链表中,每个节点包含两个指针,一个指向前一个节点,另一个指向下一个节点。
()答案:正确解析:双向链表中的每个节点确实包含两个指针,一个指向前一个节点,另一个指向下一个节点,便于从任意方向遍历链表。
数据结构试题(含答案)讲解

数据结构试题一、单选题1、在数据结构的讨论中把数据结构从逻辑上分为(C )A 内部结构与外部结构B 静态结构与动态结构C 线性结构与非线性结构D 紧凑结构与非紧凑结构。
2、采用线性链表表示一个向量时,要求占用的存储空间地址(D )A 必须是连续的B 部分地址必须是连续的C 一定是不连续的D 可连续可不连续3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为( D )。
A nB n/2C (n-1)/2D (n+1)/24、在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行( D )。
A s→link = p→link;p→link = s;B p→link = s; s→link = q;C p→link = s→link;s→link = p;D q→link = s;s→link = p;5、如果想在4092个数据中只需要选择其中最小的5个,采用( C )方法最好。
A 起泡排序B 堆排序C 锦标赛排序D 快速排序6、设有两个串t和p,求p在t中首次出现的位置的运算叫做( B )。
A 求子串B 模式匹配C 串替换D 串连接7、在数组A中,每一个数组元素A[i][j]占用3个存储字,行下标i从1到8,列下标j从1到10。
所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储字数是( C )。
A 80B 100C 240D 2708、将一个递归算法改为对应的非递归算法时,通常需要使用( A )。
A 栈B 队列C 循环队列D 优先队列9、一个队列的进队列顺序是1, 2, 3, 4,则出队列顺序为( C )。
10、在循环队列中用数组A[0..m-1] 存放队列元素,其队头和队尾指针分别为front和rear,则当前队列中的元素个数是( D )。
A ( front - rear + 1) % mB ( rear - front + 1) % mC ( front - rear + m) % mD ( rear - front + m) % m11、一个数组元素a[i]与( A )的表示等价。
数据结构考试题目及答案pdf

数据结构考试题目及答案pdf一、单项选择题(每题2分,共10分)1. 在数据结构中,线性结构和非线性结构的主要区别在于()。
A. 数据元素之间是否有逻辑关系B. 是否有且仅有一个根节点C. 是否有多个根节点D. 数据元素之间是否有顺序关系答案:A2. 链表中每个节点包含数据元素和()。
A. 一个指针B. 多个指针C. 一个数据域D. 一个数据域和一个指针答案:D3. 在二叉树的遍历中,先序遍历的顺序是()。
A. 根-左-右B. 左-根-右C. 右-根-左D. 根-右-左答案:A4. 哈希表解决冲突的方法不包括()。
A. 开放寻址法B. 链地址法C. 线性探测法D. 二分查找法答案:D5. 堆是一种特殊的完全二叉树,其特点是()。
A. 每个节点的值都大于其子节点的值B. 每个节点的值都小于其子节点的值C. 每个节点的值都大于或等于其子节点的值D. 每个节点的值都小于或等于其子节点的值答案:C二、填空题(每题2分,共10分)1. 在顺序表中,插入一个元素的平均时间复杂度为 O(n) 。
2. 栈是一种特殊的线性表,其特点是后进先出(LIFO),即后进的元素先出栈。
3. 快速排序的时间复杂度在最坏情况下为 O(n^2) 。
4. 广义表的表示形式为 (a, b, c) ,其中a、b、c可以是数据元素或子表。
5. 在图的遍历中,深度优先搜索(DFS)使用的是栈数据结构。
三、简答题(每题10分,共20分)1. 请简述二叉搜索树和平衡二叉树的区别。
答:二叉搜索树是一种特殊的二叉树,其中每个节点的左子树只包含小于该节点的值,右子树只包含大于该节点的值。
平衡二叉树除了满足二叉搜索树的性质外,还要求每个节点的左子树和右子树的高度差不超过1,以保持树的平衡,从而提高查找效率。
2. 什么是图的连通分量?请举例说明。
答:图的连通分量是指图中的最大的连通子图。
如果一个图不是连通的,那么它将被划分为若干个连通分量,每个连通分量内部的顶点都是相互连通的,但不同分量之间没有直接的边相连。
数据结构题库及答案详解

数据结构题库及答案详解一、选择题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. 给定一个整数数组,请实现一个函数来找到数组中的最长连续子序列的长度。
数据结构试卷试题及答案

数据结构试卷试题及答案一、选择题(每题5分,共40分)1. 数据结构是研究数据元素的()A. 存储结构B. 处理方法C. 逻辑结构D. 所有以上内容答案:D2. 在数据结构中,通常采用()方式来表示数据元素之间的逻辑关系。
A. 顺序存储结构B. 链式存储结构C. 索引存储结构D. 散列存储结构答案:B3. 下面哪一个不是栈的基本操作?()A. 入栈B. 出栈C. 判断栈空D. 获取栈顶元素答案:D4. 下面哪一个不是队列的基本操作?()A. 入队B. 出队C. 判断队列空D. 获取队头元素答案:D5. 下面哪一个不是线性表的特点?()A. 有且只有一个根节点B. 每个节点最多有一个前驱和一个后继C. 数据元素类型相同D. 数据元素类型可以不同答案:D6. 在下列哪种情况中,使用链式存储结构比顺序存储结构更合适?()A. 数据元素经常插入和删除B. 数据元素大小不固定C. 数据元素个数不确定D. 所有以上情况答案:D7. 下面哪一个不是树的遍历方式?()A. 前序遍历B. 中序遍历C. 后序遍历D. 翻转遍历答案:D8. 在下列哪种情况中,使用散列存储结构比其他存储结构更合适?()A. 数据元素个数较少B. 数据元素查找频繁C. 数据元素插入和删除频繁D. 数据元素大小不固定答案:B二、填空题(每题5分,共30分)9. 栈是一种特殊的线性表,它的插入和删除操作都限定在表的一端进行,这一端称为______。
答案:栈顶10. 队列是一种特殊的线性表,它的插入操作在表的一端进行,这一端称为______,而删除操作在另一端进行,这一端称为______。
答案:队尾、队头11. 二叉树中的节点包括______和______。
答案:根节点、子节点12. 在图的存储结构中,邻接矩阵表示法用______个一维数组来表示图中各个顶点之间的关系。
答案:两个13. 散列存储结构中,关键码到存储地址的映射方法称为______。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构习题集含答案目录目录 (1)选择题 (2)第一章绪论 (2)第二章线性表 (4)第三章栈和队列 (6)第四章串 (7)第五章数组和广义表 (8)第六章树和二叉树 (8)第七章图 (11)第八章查找 (13)第九章排序 (14)简答题 (19)第一章绪论 (19)第二章线性表 (24)第三章栈和队列 (26)第四章串 (28)第五章数组和广义表 (29)第六章树和二叉树 (31)第七章图 (36)第八章查找 (38)第九章排序 (39)编程题 (41)第一章绪论 (41)第二章线性表 (41)第三章栈和队列 (52)第四章串 (52)第五章数组和广义表 (52)第六章树和二叉树 (52)第七章图 (52)第八章查找 (52)第九章排序 (57)选择题第一章绪论1.数据结构这门学科是针对什么问题而产生的?(A )A、针对非数值计算的程序设计问题B、针对数值计算的程序设计问题C、数值计算与非数值计算的问题都针对D、两者都不针对2.数据结构这门学科的研究内容下面选项最准确的是(D )A、研究数据对象和数据之间的关系B、研究数据对象C、研究数据对象和数据的操作D、研究数据对象、数据之间的关系和操作3.某班级的学生成绩表中查得张三同学的各科成绩记录,其中数据结构考了90分,那么下面关于数据对象、数据元素、数据项描述正确的是(C )A、某班级的学生成绩表是数据元素,90分是数据项B、某班级的学生成绩表是数据对象,90分是数据元素C、某班级的学生成绩表是数据对象,90分是数据项D、某班级的学生成绩表是数据元素,90分是数据元素4.*数据结构是指(A )。
A、数据元素的组织形式B、数据类型C、数据存储结构D、数据定义5.数据在计算机存储器内表示时,物理地址与逻辑地址不相同,称之为(C )。
A、存储结构B、逻辑结构C、链式存储结构D、顺序存储结构6.算法分析的目的是(C )A、找出数据的合理性B、研究算法中的输入和输出关系C、分析算法效率以求改进D、分析算法的易懂性和文档型性7.算法分析的主要方法(A )。
A、空间复杂度和时间复杂度B、正确性和简明性C、可读性和文档性D、数据复杂性和程序复杂性8.计算机内部处理的基本单元是(B )A、数据B、数据元素C、数据项D、数据库9.数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要(B )。
A、低B、高C、相同D、不好说10.算法的时间复杂度取决于( C )A 、问题的规模B、待处理数据的初始状态C、问题的规模和待处理数据的初始状态D、不好说11.数据结构既研究数据的逻辑结构,又研究物理结构,这种观点(B )。
A、正确B、错误C、前半句对,后半句错D、前半句错,后半句对12.在数据结构中,从逻辑上可以把数据结构分成( C )A、动态结构和静态结构B、紧凑结构和非紧凑结构C、线性结构和非线性结构D、内部结构和外部结构13.线性表的顺序存储结构是一种( )的存储结构,线性表的链式存储结构是一种( A )存储结构。
A、随机存取B、顺序存取C、索引存取D、散列存取14.*下列程序的时间复杂度是(A )for (i=1; i<=n; ++i){for (j=1; j<=n; ++j){c [i][j]=0;}}A、O(n2)B、O(n)C、O(2n)D、O(2n2)15.*下列程序的空间复杂度是(A )for (i=1; i<=n; ++i){for (j=1; j<=m; ++j){c [i][j]=0;}}A、O(m*n)B、O(m+n)C、O(m-n)D、O(m/n)16.*求下列程序段的时间复杂度( B )for( i=1; i<=n ; i + + )for ( j=1; j<=n ; j + + )x=x+1;A、O(n2)B、O(n)C、O(1)D、O(0)第二章线性表1.关于线性表的说法不正确的是?(D )A、存在唯一的一个被称为“第一个”的数据元素(开始结点)B、存在唯一的一个被称为“最后一个”的数据元素(终端结点)C、除第一个之外,集合中的每个数据元素均只有一个前驱D、除第一个之外,集合中的每个数据元素均只有一个后继2.关于顺序表的说法不正确的是?(D )A、逻辑关系上相邻的两个元素在物理存储位置上也相邻B、可以随机存取表中任一元素,方便快捷C、在线性表中插入某一元素时,往往需要移动大量元素D、在线性表中删除某一元素时,无需移动大量元素3.当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用什么存储结构?(A )A、顺序表B、单链表C、循环链表D、双链表4.在一个长度为n的顺序表中第i个元素(1<=i<=n)之前插入一个元素时,需向后移动多少个元素。
(C )A、n-1B、n-iC、n-i+1D、n-i-15.在单链表中设置头结点的作用是( )。
A、单链表定义而已B、指定表的起始位置C、为双向链表做准备D、为循环链表做准备6.根据线性表链式存储结构中每一个结点包含的指针数,将线性链表分成(C )A、单链表与循环链表B、单链表与十字链表C、单链表与双链表D、循环链表与多链表7.链接存储的特点是利用什么来表示数据元素之间的逻辑关系(A )A、引用B、串联C、挂接D、指派8.已知指针p指向单链表L中的某结点,则删除其后继结点的语句是(D )A、p = p.nextB、p =nullC、p.next=nullD、p.next = p.next.next9.*在单链表L中,指针p所指结点有后继结点的条件是(B )A、p = p.nextB、p.next!=nullC、p.next=nullD、p.next = p.next.next10.*在单链表p结点之后插入s结点的操作是(C )A、p.next=s; s.next=p.next;B、s.next = p.next; p.next=p.next.next;C、s.next = p.next; p.next = s;D、s.next=p; p.next=s;第三章栈和队列1.栈、队列通常采用两种存储结构,它们是(B )A、散列方式和索引方式B、顺序存储结构和链式存储结构C、链表存储结构和数组D、线性和非线性存储结构2.一个栈入栈序列是a,b,c,d, 则栈输出序列不可能是(C )A、d,c,b,aB、c,d,b,aC、d,c,a,bD、a,b,c,d3.判断顺序栈(最多结点数为m)为栈满的条件是(D )A、top==0B、 top!=mC、 top!=0D、top==m4.栈存取数据原则(或栈特点)是(B )A、后进后出B、后进先出C、先进先出D、随意进出5.*经过以下栈运算后,x的值是(A )InitStack(s);Push(s,d);Push(s,e);Pop(s,x);Pop(s,x);GetTop(s,x);A、 dB、 e C 、 x D、 s6.一个队列的进队序列为:a,b,c,d,则出队序列是: ( A )A、a,b,c,dB、 d,c,b,aC、a,d,c,bD、 c,b,d,a7.循环队列为空队列的条件是:(D)A、Q.front=0B、 Q.(rear+1)%MaxSize==Q.frontC、 Q.rear=0D、 Q.rear==Q.front8.在存储结构上,如果用带头节点单链表实现队列(假定front和rear分别为队首和队尾指针),则删除一个结点的操作为(A )。
A、front.next=front.next.nextB、rear=rear.nextC、rear=front.nextD、front= front.next9.栈和队列共同点是(C )A、先进后出B、先进先出C、允许在端点处进行操作线性表D、无共同点10.插入和删除只能在一端进行的线性表是(B )A、循环队列B、栈C、队列D、循环栈11.插入和删除分别在两端端进行的线性表是(C )A、循环队列B、栈C、队列D、循环栈12.循环队列为满队列的条件是:(B )A、Q.front=0B、 Q.(rear+1)%MaxSize==Q.frontC、 Q.rear=0D、 Q.rear==Q.front第四章串1.关于串的叙述,错误的是:(B )A.串是字符有限序列B.空串是由空格构成的串C.模式匹配是串的重要运算 D.串有用顺序、链式两种存储方式2.串长度是指(B )A.串所含不同字母数目 B.串所含字符数目C.串所含不同字符数目 D.串所含非空格字符数目3.*若串S=”database”,其子串数目是(B )。
A.16 B.37 C.8 D.364.设串S1是串S子串,则求S1在S中定位运算称为(B )A.求子串 B.串匹配 C.联接 D.求串长5.设有串s1=”welcome to zdsoft colleage!”和s2=”so”,那么s2在s1中的索引位置是(C )A.12 B.14 C.13 D.106.*若串S=“software“,其子串的数目是(B )。
A.8 B.37 C.36 D.9第五章数组和广义表第六章树和二叉树1.假设在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为( B )个。
A. 15B. 16C. 17D. 472.假定一棵三叉树的结点数为50,则它的最小高度为(C )。
A. 3B. 4C. 5D. 63.在一棵二叉树上第4层的结点数最多为(D )。
A. 2B. 4C. 6D. 84.用顺序存储的方法将完全二叉树中的所有结点逐层存放在数组中R[1..n],结点R[i]若有左孩子,其左孩子的编号为结点(B )。
A. R[2i+1]B. R[2i]C. R[i/2]D. R[2i-1]5.设n , m 为一棵二叉树上的两个结点,在中序遍历序列中n在m前的条件是(B )。
A. n在m右方B. n在m 左方C. n是m的祖先D. n是m的子孙6.下面叙述正确的是(D )。
A. 二叉树是特殊的树B. 二叉树等价于度为2的树C. 完全二叉树必为满二叉树D. 二叉树的左右子树有次序之分7.现有一深度为5的二叉树,请问其最多有( D )个结点。
A. 32B. 5C.30D. 318.现有一深度为4的二叉树,请问其最多有( A )个结点。
A. 15B. 16C.17D.69.在一棵二叉排序树上按( B )遍历得到的结点序列是一个有序序列。
A. 先序B. 中序C.后序D.头序10.在一棵二叉树中,度为0的结点数为n0,度为2的结点数为n2,则n0=( C )A. n+1B. n+2C.n2+1D.2n+111.由三个结点构成的二叉树,共有(B )种不同的形态。