数据结构与算法总复习题
数据结构与算法复习题

《数据结构与算法》一、选择题1. 组成数据的基本单位是( )。
(A) 数据项 (B)数据类型 (C)数据元素 (D)数据变量2. 线性表的链接实现有利于( )运算。
(A) 插入 (B)读表元 (C)查找 (D)定位3. 串的逻辑结构与( )的逻辑结构不同。
(A) 线性表 (B)栈 (C)队列 (D)树4. 二叉树第i(i≥1)层最多有( )个结点。
(A) 2i (B)2i (C) 2i-1 (D) 2i-15. 设单链表中指针p指向结点A,若要删除A后结点(若存在),则需要修改指针的操作为( )(A) p->next = p->next->next (B)p=p->next(C)p=p->next->next (D)p->next=p6、栈和队列的共同特点是( )。
(A)只允许在端点处插入和删除元素 (B)都是先进后出(C)都是先进先出 (D)没有共同点7、二叉树的第k层的结点数最多为( ).(A)2k+1 (B)2K+1 (C)2K-1(D) 2k-18、设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为()。
(A) BADC (B) BCDA (C) CDAB (D) CBDA9、设某完全无向图中有n个顶点,则该完全无向图中有()条边。
(A) n(n-1)/2 (B) n(n-1) (C) n2 (D) n2-110、下面程序的时间复杂为()for(i=1,s=0; i<=n; i++){t=1;for(j=1;j<=i;j++)t=t*j;s=s+t;}(A) O(n) (B) O(n2) (C) O(nlog2n) (D) O(n3)11、设某强连通图中有n个顶点,则该强连通图中至少有()条边。
(A) n(n-1) (B) n+1 (C) n (D) n(n+1)12、设某有向图的邻接表中有n个表头结点和m个表结点,则该图中有()条有向边。
数据结构与算法复习题库含答案

数据结构与算法复习题库含答案1. 问题描述:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
答案:可以使用哈希表来解决此问题。
首先初始化一个空的哈希表,然后遍历数组中的每个元素。
对于每个元素,首先计算目标值与当前元素的差值,然后在哈希表中查找该差值。
如果找到了该差值,则说明存在两个数的和等于目标值,返回这两个数的下标;否则,将当前元素插入到哈希表中。
时间复杂度为O(n),其中n为数组的长度。
2. 问题描述:给定一个字符串,找出其中不含重复字符的最长子串的长度。
答案:可以使用滑动窗口来解决此问题。
维护一个窗口,其中包含没有重复字符的子串。
遍历字符串中的每个字符,如果该字符不在窗口中,将其加入窗口;如果该字符在窗口中,移动窗口的左边界直到窗口中不包含重复字符。
记录窗口的最大长度。
时间复杂度为O(n),其中n为字符串的长度。
3. 问题描述:给定一个字符串和一个单词列表,找出字符串中可以由单词列表中的单词组成的所有子串的起始位置。
答案:可以使用滑动窗口和哈希表来解决此问题。
首先统计单词列表中每个单词的出现次数。
然后遍历字符串中的每个位置作为子串的起始位置,维护一个滑动窗口。
在窗口中依次取出长度和单词列表中单词总长度相等的子串,在哈希表中统计子串中每个单词出现的次数。
如果窗口中的子串与单词列表中的单词出现次数一致,则记录该子串的起始位置。
时间复杂度为O(n*m),其中n为字符串的长度,m为单词列表中的单词个数。
4. 问题描述:给定一个无序的整数数组,找出其中缺失的第一个正整数。
答案:可以使用原地哈希表来解决此问题。
遍历数组中的每个元素,将每个正整数放到数组中对应的位置上。
遍历数组中的每个元素,如果该位置上的数不等于数组索引加一,则该索引加一即为缺失的第一个正整数。
时间复杂度为O(n),其中n为数组的长度。
5. 问题描述:给定一个字符串s,找到s中最长的回文子串。
答案:可以使用动态规划来解决此问题。
算法与数据结构期末考试卷

算法与数据结构期末考试卷一、选择题(每题2分,共20分)1. 在数据结构中,线性表的顺序存储结构被称为:A. 链表B. 栈C. 队列D. 数组2. 快速排序算法的时间复杂度在最坏情况下是:A. O(n)B. O(n log n)C. O(n^2)D. O(log n)3. 哈希表解决冲突最常用的方法是:A. 链地址法B. 线性探测法C. 二次探测法D. 双重哈希法4. 二叉树的遍历方式不包括:A. 前序遍历B. 中序遍历C. 后序遍历D. 广度优先遍历5. 堆排序算法是基于:A. 链表B. 栈C. 队列D. 堆...(此处省略其他选择题)二、简答题(每题10分,共20分)1. 请简述二叉搜索树与普通二叉树的区别。
2. 什么是递归?请举例说明递归在算法中的应用。
三、编程题(每题15分,共30分)1. 编写一个函数,实现对链表的反转。
2. 编写一个函数,实现快速排序算法。
四、综合应用题(每题15分,共30分)1. 描述如何使用哈希表实现一个简单的数据库索引系统。
2. 假设你有一个数组,其中包含了一些重复的数值,请编写一个算法来找出数组中出现次数超过数组长度一半的数值。
五、论述题(每题15分,共15分)1. 论述动态规划与贪心算法的区别,并给出一个动态规划问题的例子。
六、附加题(10分,可选做)1. 请设计一个算法,用于检测一个字符串是否是回文。
如果字符串是回文,请返回True,否则返回False。
注意:本试卷中所有题目的答案必须以书面形式给出,编程题需要提供完整的代码实现。
祝各位考生考试顺利,取得优异成绩。
数据结构与算法试题库(含参考答案)

数据结构与算法试题库(含参考答案)一、单选题(共86题,每题1分,共86分)1.在快速排序的一趟划分过程中,当遇到与基准数相等的元素时,如果左指针停止移动,而右指针在同样情况下却不停止移动,那么当所有元素都相等时,算法的时间复杂度是多少?A、O(N2)B、O(N)C、O(NlogN)D、O(logN)正确答案:A2.在一个不带头结点的非空链式队列中,假设f和r分别为队头和队尾指针,则插入s所指的结点运算是( )。
A、f->next=s; f=s;B、s->next=s; r=s;C、s->next=f; f=s;D、r->next=s; r=s;正确答案:D3.若借助堆栈将中缀表达式a+b*c+(d*e+f)*g转换为后缀表达式,当读入f时,堆栈里的内容是什么(按堆栈自底向上顺序)?A、++(+B、+(*+C、+(+D、abcde正确答案:C4.二叉树的高度若根节点为高度1,一棵具有 1025 个结点的二叉树的高度为▁▁▁▁▁ 。
A、11~1025 之间B、10~1024 之间C、11D、10正确答案:A5.已知一个长度为16的顺序表L,其元素按关键字有序排列。
若采用二分查找法查找一个L中不存在的元素,则关键字的比较次数最多是:A、7B、5C、6D、4正确答案:B6.设有图的数据逻辑结构 B=(K,R),其中顶点集 K={k1,k2,⋯,k9},有向边集R={<k1,k3>,<k1,k8>,<k2,k3>,<k2,k4>,<k2,k5>,<k3,k9>,<k5,k6>,<k8, k9>,<k9,k7>,<k4,k7>,<k4,k6>}。
以下哪个选项不是对应DAG图的拓扑序列?A、k1,k2,k3,k4,k5,k6,k8,k9,k7B、k2,k5,k1,k4,k6,k8,k3,k9,k7C、k2,k4,k5,k6,k7,k1,k3,k8,k9D、k1,k8,k2,k3,k9,k4,k7,k5,k6正确答案:C7.一棵满二叉树中127个节点,其中叶子节点的个数是()A、64B、不确定C、65D、63正确答案:A8.具有5个顶点的有向完全图有多少条弧?A、20B、16C、25D、10正确答案:A9.设有一组关键字 { 29,01, 13,15,56,20,87,27,69,9,10,74 },散列函数为 H(key)=key%17,采用线性探测方法解决冲突。
《数据结构与算法》试卷

一、选择题1.下列哪种数据结构适合用于实现优先队列?A.栈B.队列C.二叉堆(正确答案)D.链表2.在进行图的深度优先搜索(DFS)时,使用哪种数据结构可以帮助记录已访问过的顶点,从而避免重复访问?A.栈B.队列C.集合(正确答案)D.哈希表3.下列排序算法中,哪种算法的时间复杂度在最坏情况下为O(n2),但在平均情况下和最好情况下可以达到O(nlogn)?A.快速排序(正确答案)B.归并排序C.堆排序D.插入排序4.在二叉树的遍历中,前序遍历的顺序是?A.根节点-> 左子树-> 右子树(正确答案)B.左子树-> 根节点-> 右子树C.左子树-> 右子树-> 根节点D.根节点-> 右子树-> 左子树5.下列哪种查找算法在有序数组中查找特定元素时,具有最优的时间复杂度O(logn)?A.顺序查找B.二分查找(正确答案)C.插值查找D.斐波那契查找6.在哈希表中,处理哈希冲突的一种常见方法是?A.开放寻址法(正确答案)B.链地址法C.再哈希法D.以上都是7.下列关于二叉搜索树(BST)的说法中,哪一项是正确的?A.在BST中,每个节点的左子树只包含小于该节点的数B.在BST中,每个节点的右子树只包含大于该节点的数C.在BST中,每个节点的左子树只包含小于该节点的数,右子树只包含大于该节点的数(正确答案)D.BST中不允许有重复值的节点8.下列哪种算法是解决最短路径问题的经典算法,适用于带权重的图?A.迪杰斯特拉算法(Dijkstra)(正确答案)B.弗洛伊德算法(Floyd)C.贝尔曼-福特算法(Bellman-Ford)D.A*算法(A-star)。
数据结构与算法题库(附参考答案)

数据结构与算法题库(附参考答案)一、单选题(共86题,每题1分,共86分)1.在快速排序的一趟划分过程中,当遇到与基准数相等的元素时,如果左右指针都不停止移动,那么当所有元素都相等时,算法的时间复杂度是多少?A、O(NlogN)B、O(N)C、O(N2)D、O(logN)正确答案:C2.一棵有 1001 个结点的完全二叉树,其叶子结点数为▁▁▁▁▁ 。
A、254B、250C、501D、500正确答案:C3.对于一个具有N个顶点的无向图,若采用邻接矩阵表示,则该矩阵的大小是:A、(N−1)2B、NC、N2D、N−1正确答案:C4.在有n(>1)个元素的最大堆(大根堆)中,最小元的数组下标可以是:A、⌊n/2⌋−1B、⌊n/2⌋+2C、1D、⌊n/2⌋正确答案:B5.一棵非空二叉树,若先序遍历与中序遍历的序列相同,则该二叉树▁▁▁▁▁ 。
A、所有结点均无左孩子B、所有结点均无右孩子C、只有一个叶子结点D、为任意二叉树正确答案:A6.度量结果集相关性时,如果准确率很高而召回率很低,则说明:A、大部分检索出的文件都是相关的,但还有很多相关文件没有被检索出来B、大部分相关文件被检索到,但基准数据集不够大C、大部分检索出的文件都是相关的,但基准数据集不够大D、大部分相关文件被检索到,但很多不相关的文件也在检索结果里正确答案:A7.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。
则采用哪种存储方式最节省运算时间?A、单循环链表B、带头结点的双循环链表C、单链表D、双链表正确答案:B8.设数组 S[ ]={93, 946, 372, 9, 146, 151, 301, 485, 236, 327, 43, 892},采用最低位优先(LSD)基数排序将 S 排列成升序序列。
第1 趟分配、收集后,元素 372 之前、之后紧邻的元素分别是:A、43,892B、236,301C、301,892D、485,301正确答案:C9.在快速排序的一趟划分过程中,当遇到与基准数相等的元素时,如果左指针停止移动,而右指针在同样情况下却不停止移动,那么当所有元素都相等时,算法的时间复杂度是多少?A、O(NlogN)B、O(N2)C、O(N)D、O(logN)正确答案:B10.在快速排序的一趟划分过程中,当遇到与基准数相等的元素时,如果左右指针都会停止移动,那么当所有元素都相等时,算法的时间复杂度是多少?A、O(NlogN)B、O(N)C、O(logN)D、O(N2)正确答案:A11.如果AVL树的深度为6(空树的深度定义为−1),则此树最少有多少个结点?A、12B、20C、33D、64正确答案:C12.已知指针ha和hb分别是两个单链表的头指针,下列算法将这两个链表首尾相连在一起,并形成一个循环链表(即ha的最后一个结点链接hb 的第一个结点,hb的最后一个结点指向ha),返回ha作为该循环链表的头指针。
数据结构与算法复习题集

数据结构与算法复习题集在计算机科学领域,数据结构与算法是非常重要的基础知识。
它们就像是建筑师手中的蓝图和工具,决定了程序的效率和性能。
为了帮助大家更好地掌握这部分内容,下面为大家整理了一份数据结构与算法的复习题集。
一、数据结构部分1、线性表请简述顺序表和链表的优缺点,并举例说明在什么情况下更适合使用顺序表,什么情况下更适合使用链表。
实现一个顺序表的插入和删除操作,并分析其时间复杂度。
2、栈和队列解释栈和队列的概念,并说明它们的应用场景。
用数组实现一个循环队列,并写出入队和出队的操作代码。
3、数组和字符串给定一个整数数组,找出其中出现次数超过数组长度一半的元素。
请给出算法思路和代码实现。
实现一个字符串匹配算法,判断一个字符串是否是另一个字符串的子串。
4、树简述二叉树的前序、中序和后序遍历的递归和非递归实现方法。
给定一个二叉搜索树,实现插入、删除和查找操作。
5、图解释图的深度优先搜索和广度优先搜索算法,并给出代码示例。
用邻接表存储一个无向图,实现图的遍历和最短路径算法(如迪杰斯特拉算法)。
二、算法部分1、排序算法比较冒泡排序、插入排序、选择排序、快速排序和归并排序的时间复杂度和空间复杂度,并分析它们的优缺点。
实现快速排序算法,并分析其在最坏情况下的性能。
2、查找算法简述顺序查找、二分查找和哈希查找的原理和适用场景。
设计一个哈希表,并实现插入、查找和删除操作。
3、动态规划解释动态规划的基本思想,并通过一个具体的例子(如背包问题)说明其求解过程。
用动态规划算法求解最长递增子序列问题。
4、贪心算法阐述贪心算法的概念和特点,并举例说明贪心算法可能得到非最优解的情况。
用贪心算法解决活动安排问题。
5、分治算法说明分治算法的基本步骤,并以归并排序为例解释其应用。
用分治算法求解最大子数组和问题。
三、综合应用1、假设有一个包含学生信息(学号、姓名、成绩)的链表,要求实现按照成绩从高到低排序的功能。
2、设计一个算法,判断一个二叉树是否是平衡二叉树。
算法与数据结构重考复习题(0910)

i列1的元素之和 )。对于含n个顶点和e条边的图,采用邻接矩阵表示的空间复杂度为( O(n2) )。连通图
是指图中任意两个顶点之间(都连通的无向图 )。一个有n个顶点的无向连通图,它所包含的连通分量个数最
保持青春的秘诀,是有一颗不安分的心。
算法与数据结构重考复习题(0910)
一、单选题(斜体为答案)
1.数据结构被形式地定义为(D,R),其中D 是
A. 算法 B. 操作的集合 C. 数据元素的集合 D. 数据关系的集合
2.顺序表是线性表的
A. 顺序存储结构 B. 链式存储结构 C. 索引存储结构 D. 散列存储结构
5.已知栈的输入序列为1,2,3....,n,输出序列为a1,a2,...,an,a2=n的输出序列共有(n-1)种输出序列。
队列的特性是先入先出,栈的特性是(后入先出)。如果以链栈为存储结构,则出栈操作时必须判别(栈空 )。与顺序栈相比,链栈有一个明显的优势是( 不易出现栈满 )。
6.循环队列采用数组data[1..n]来存储元素的值,并用front和rear分别作为其头尾指针。为区分队列的满和空,约定:队中能够存放的元素个数最大为(n-l),也即至少有一个元素空间不用,则在任意时刻,至少可以知道一个空的元素的下标是(front) ;入队时,可用语句(rear=rear+1%n)求出新元素在数组data中的下标。
(3)双向链表:q=p->prior; temp=q->data; q->data=p->data;p->data=temp;
2.内存中一片连续空间(不妨设地址从1到m),提供给两个栈S1和S2使用,怎样分配这部分存储空间,使得对任意一个栈,仅当这部分全满时才发生上溢。(为了尽量利用空间,减少溢出的可能,可采用栈顶相向,栈底分设两端的存储方式,这样,对任何一个栈,仅当整个空间全满时才会发生上溢。)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 3. 队列 是被限定为只能在表的一端 进行插入运算,在表的另一端进行删除 运算的线性表。
• 二、判断正误(判断下列概念的正确性, 并作出简要的说明。) • ( )1. 线性表的每个结点只能是 一个简单类型,而链表的每个结点可以 是一个复杂类型。 •
• 二、判断正误(判断下列概念的正确性, 并作出简要的说明。) • ( × )1. 线性表的每个结点只能是一 个简单类型,而链表的每个结点可以是 一个复杂类型。 • 错,线性表是逻辑结构概念,可以顺序 存储或链式存储,与元素数据类型无关。
• ( )3. 线性表的每个结点只能是一个 简单类型,而链表的每个结点可以是一 个复杂类型。
• 错,混淆了逻辑结构与物理结构,链表 也是线性表!且即使是顺序表,也能存 放记录型数据。
• ( )4. 顺序表结构适宜于进行顺序存 取,而链表适宜于进行随机存取。 • 错,正好说反了。顺序表才适合随机存 取,链表恰恰适于“顺藤摸瓜”
• ( C )3. 算法分析的目的是: • A) 找出数据结构的合理性 • B) 研究算法中的输入和输出的关系 • C) 分析算法的效率以求改进 • D) 分析算法的易懂性和文档性
• • • • •
( A )4. 算法分析的两个主要方面是: A) 空间复杂性和时间复杂性 B) 正确性和简明性 C) 可读性和文档性 D) 数据复杂性和程序复杂性
• B
• ( )5. 链接存储的存储结构所占存储 空间: • A 分两部分,一部分存放结点值,另一 部分存放表示结点间关系的指针 • B 只有一部分,存放结点值 • C 只有一部分,存储表示结点间关系的 指针 • D 分两部分,一部分存放结点值,另一 部分存放结点所占单元数 •
• A
• ( )6. 链表是一种采用 构存储的线性表; • (A)顺序 • (B)链式 • (C)星式 • (D)网状
• 三、单项选择题 • ( )1. 栈中元素的进出原则是 • A.先进先出 B.后进先出 • C.栈空则进 D.栈满则出 •
• 三、单项选择题 • ( B )1. 栈中元素的进出原则是 • A.先进先出 B.后进先出 • C.栈空则进 D.栈满则出
• 6. 【初程P71】 从供选择的答案中,选 出应填入下面叙述 内的最确切的解 答,把相应编号写在答卷的对应栏内。 • 设有4个数据元素a1、a2、a3和a4,对 他们分别进行栈操作或队操作。在进栈 或进队操作时,按a1、a2、a3、a4次序 每次进入一个元素。假设栈或队的初始 状态都是空。
• 2. 栈是一种特殊的线性表,允许插入和 删除运算的一端称为 。不允许 插入和删除运算的一端称为 。
• 2. 栈是一种特殊的线性表,允许插入和 删除运算的一端称为 栈顶 。不允许 插入和删除运算的一端称为 栈底 。
• 3. 是被限定为只能在表的一端进 行插入运算,在表的另一端进行删除运 算的线性表。
Hale Waihona Puke • 3. 算法的定义和特性。
• 算法是解决特定问题的有限指令序列。 特性:有限性、确定性、可行性、有0个 或多个输入数据、有1个或多个输出结果。
• 4.数据结构的逻辑结构有哪四类?
• 集合结构、线性结构、树形结构、图形 结构 • 线性结构的前驱与后继之间为一对一关 系,非线性结构的前驱与后继之间通常 为一对多或多对多关系。
• 数据结构第一章
• 一、填空题
• 1. 数据结构是一门研究非数值计算的程 序设计问题中计算机的 操作对象 以及它们之间的 关系 和运算等的 学科。
• 2. 数据结构被形式地定义为(D, R),其 中D是 数据元素 的有限集合,R 是D上的 关系 有限集合。
• 3. 数据结构包括数据的 逻辑结 构 、数据的 存储结构 、和数 据的 运算 这三个方面的内容。
• 答:错误。链表中的结点可含多个指针 域,分别存放多个指针。例如,双向链 表中的结点可以含有两个指针域,分别 存放指向其直接前趋和直接后继结点的 指针。
• ( )2. 链表的删除算法很简单,因为 当删除链中某个结点后,计算机会自动 地将后续的各个单元向前移动。
• 错,链表的结点不会移动,只是指针内 容改变。
• ( )8. 队是一种插入与删除操作 分别在表的两端进行的线性表,是一种 先进后出型结构。
• ( × )8. 队是一种插入与删除操作分 别在表的两端进行的线性表,是一种先 进后出型结构。 • 错,后半句不对。
• ( )9. 一个栈的输入序列是12345, 则栈的输出序列不可能是12345。
• ( × )9. 一个栈的输入序列是12345, 则栈的输出序列不可能是12345。 • 错,有可能。
• 错误。线性表有两种存储方式,在顺序 存储时,逻辑上相邻的元素在存储的物 理位置次序上也相邻。
单项选择题
( )1.数据在计算机存储器内表示时, 物理地址与逻辑地址相同并且是连续的, 称之为: • (A)存储结构 • (B)逻辑结构 • (C)顺序存储结构 • (D)链式存储结构
• C
• ( )2.一个向量第一个元素的存储地 址是100,每个元素的长度为2,则第5 个元素的地址是 • (A)110 • (B)108 • (C)100 • (D)120
• ( )6. 栈和队列是一种非线性数 据结构。
• ( × )6. 栈和队列是一种非线性数据 结构。
• 错,他们都是线性逻辑结构,栈和队列 其实是特殊的线性表,对运算的定义略 有不同而已。
• ( )7. 栈和队列的存储方式既可 是顺序方式,也可是链接方式。
• ( √ )7. 栈和队列的存储方式既可是 顺序方式,也可是链接方式。
• 三、简答题 • 1.数据结构和数据类型两个概念之间有 区别吗?答:简单地说,数据结构定义 了一组按某些关系结合在一起的数组元 素。数据类型不仅定义了一组带结构的 数据元素,而且还在其上定义了一组操 作。
• 2. 简述线性结构与非线性结构的不同点。 • 答:线性结构反映结点间的逻辑关系是 一对一的,非线性结构反映结点间的逻 辑关系是多对多的。
• 答:① 顺序存储时,相邻数据元素的存放地 址也相邻(逻辑与物理统一);要求内存中可 用存储单元的地址必须是连续的。 • 优点:存储空间利用率高。
• 缺点:插入或删除元素时不方便。
• ②链式存储时,相邻数据元素可随意存 放,但所占存储空间分两部分,一部分 存放结点值,另一部分存放表示结点间 关系的指针
• ( )5. 顺序存储方式的优点是存储密 度大,且插入、删除运算效率高。 • 错,前一半正确,但后一半说法错误, 那是链式存储的优点。 • 顺序存储方式插入、删除运算效率较低, 在表长为n的顺序表中,插入和删除一个 数据元素,平均需移动表长一半个数的 数据元素。
• ( )8. 线性表在顺序存储时,逻辑上 相邻的元素未必在存储的物理位置次序 上相邻。
• 优点:插入或删除元素时很方便,使用 灵活。 • 缺点:存储空间利用率低。
• 顺序表适宜于做查找这样的静态操作; 链表宜于做插入、删除这样的动态操作。 • 若线性表的长度变化不大,且其主要操 作是查找,则采用顺序表;
• 若线性表的长度变化较大,且其主要操 作是插入、删除操作,则采用链表。
• 第三章
• • • • •
( C )5. 计算机算法指的是: A) 计算方法 B) 排序方法 C) 解决问题的有限运算序列 D) 调度方法
• ( B )6. 计算机算法必须具备输入、 输出和 等5个特性。 • A) 可行性、可移植性和可扩充性 • B) 可行性、确定性和有穷性 • C) 确定性、有穷性和稳定性 • D) 易读性、稳定性和安全性
• ( )2. 在表结构中最常用的是线 性表,栈和队列不太常用。
• ( × )2. 在表结构中最常用的是线 性表,栈和队列不太常用。
• 错,不一定吧?调用子程序或函数常用, CPU中也用队列。
• ( )3. 栈是一种对所有插入、删 除操作限于在表的一端进行的线性表, 是一种后进先出型结构。
• ( √ )3. 栈是一种对所有插入、删除 操作限于在表的一端进行的线性表,是 一种后进先出型结构。
第二章 线性表习题
• 1 顺序表中逻辑上相邻的元素的物理 位置 相邻。
• 单链表中逻辑上相邻的元素的物理位 置 相邻。
• 一定 • 不一定
• 2 在单链表中,除了首元结点外,任一 结点的存储位置由其直接前驱结点的链 域的值指示。
• 3. 线性表中结点间的关系是 的。
一对一
判断题
• ( )1. 链表的每个结点中都恰好包含 一个指针。
存储结
• B
• ( )7. 线性表若采用链式存储结构时, 要求内存中可用存储单元的地址: • (A)必须是连续的 • (B)部分地址必须是连续的 • (C)一定是不连续的 • (D)连续或不连续都可以
• D
• ( )8. 线性表在 情况下适用于使 用链式结构实现。 • (A)需经常修改线性表中的结点值 (B)需不断对线性表进行删除插入 • (C)线性表中含有大量的结点 • (D)线性表中结点结构复杂
• 现要进行的栈操作是进栈两次,出栈一次,再 进栈两次,出栈一次;这时,第一次出栈得到 的元素是 A ,第二次出栈得到的元素是 B 是; • 类似地,考虑对这四个数据元素进行的队操作 是进队两次,出队一次,再进队两次,出队一 次;这时,第一次出队得到的元素是 C , 第二次出队得到的元素是 D 。经操作后, 最后在栈中或队中的元素还有 E 个。 • 供选择的答案: • A~D:①a1 ②a2 ③ a3 ④a4 • E: ①1 ②2 ③ 3 ④0
• 7. 在树形结构中,树根结点没有 前驱 结点,其余每个结点有且只有 1 个前驱 结点;叶子结点没有 后续 结点,其余 每个结点的后续结点数可以 任意多 个 。
• 8. 在图形结构中,每个结点的前驱结点 数和后续结点数可以 任意多个 。
• 9.数据的存储结构可用四种基本的存储 方法表示,它们分别是 顺序 、 链式 、 索引 和 散列 。