数据结构期末重点复习题
pta数据结构期末复习题
pta数据结构期末复习题一、选择题(每题2分,共20分)1. 在数据结构中,线性结构的特点是什么?A. 元素之间存在一对一的关系B. 元素之间存在一对多的关系C. 元素之间存在多对多的关系D. 元素之间存在一对一或多对多的关系2. 栈(Stack)是一种后进先出(LIFO)的数据结构,以下哪个操作不是栈的基本操作?A. 入栈(Push)B. 出栈(Pop)C. 查看栈顶元素(Top)D. 排序(Sort)3. 在二叉树中,度为2的节点最多有多少个子节点?A. 1B. 2C. 3D. 44. 哈希表的冲突解决方法不包括以下哪项?A. 开放寻址法B. 链接法C. 线性探测法D. 冒泡排序法5. 图的遍历算法中,深度优先搜索(DFS)使用的是哪种数据结构来实现?A. 队列B. 栈C. 链表D. 树二、填空题(每空2分,共20分)6. 在链表中,每个节点通常包含数据部分和______。
7. 排序算法中,冒泡排序的时间复杂度为______。
8. 快速排序算法的平均时间复杂度为______。
9. 哈夫曼编码是一种______编码方法。
10. 在图的表示方法中,邻接矩阵适用于______图。
三、简答题(每题10分,共30分)11. 简述线性表和非线性表的区别。
12. 解释什么是二叉搜索树,并说明其特点。
13. 描述图的深度优先搜索(DFS)和广度优先搜索(BFS)的区别。
四、计算题(每题15分,共30分)14. 给定一个数组A = [3, 7, 5, 1, 9, 8],请使用选择排序算法对其进行排序,并给出排序过程中的每一步状态。
15. 假设有一个无向图,包含顶点A, B, C, D, E,边的权重如下:(A,B): 1, (B,C): 2, (C,D): 3, (D,E): 4, (A,E): 5。
请使用克鲁斯卡尔算法(Kruskal's algorithm)找到该图的最小生成树。
五、编程题(共10分)16. 编写一个函数,实现单链表的反转,并说明其时间复杂度。
数据结构期末考试复习题及参考答案
第1章绪论1. 填空(1)()是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
【解答】数据元素(2)()是数据的最小单位,()是讨论数据结构时涉及的最小数据单位。
【解答】数据项,数据元素【分析】数据结构指的是数据元素以及数据元素之间的关系。
(3)从逻辑关系上讲,数据结构主要分为()、()、()和()。
【解答】集合,线性结构,树结构,图结构(4)数据的存储结构主要有()和()两种基本方法,不论哪种存储结构,都要存储两方面的内容:()和()。
【解答】顺序存储结构,链接存储结构,数据元素,数据元素之间的关系(5)算法具有五个特性,分别是()、()、()、()、()。
【解答】有零个或多个输入,有一个或多个输出,有穷性,确定性,可行性(6)在一般情况下,一个算法的时间复杂度是()的函数。
【解答】问题规模(7)设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为(),若为n*log25n,则表示成数量级的形式为()。
【解答】Ο(1),Ο(nlog2n)【分析】用大O记号表示算法的时间复杂度,需要将低次幂去掉,将最高次幂的系数去掉。
2. 选择题⑴顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关系是由()表示的。
A 线性结构B 非线性结构C 存储位置D 指针【解答】C,D【分析】顺序存储结构就是用一维数组存储数据结构中的数据元素,其逻辑关系由存储位置(即元素在数组中的下标)表示;链接存储结构中一个数据元素对应链表中的一个结点,元素之间的逻辑关系由结点中的指针表示。
⑵假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产;子女可以继承父亲或母亲的遗产;子女间不能相互继承。
则表示该遗产继承关系的最合适的数据结构应该是()。
A 树B 图C 线性表D 集合【解答】B【分析】将丈夫、妻子和子女分别作为数据元素,根据题意画出逻辑结构图。
⑶算法指的是()。
《数据结构》期末考试试卷试题及答案
《数据结构》期末考试试卷试题及答案第一部分:选择题(每题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. 编写一个函数,实现链表的插入操作。
数据结构期末考试复习题资料
数据结构期末考试复习题资料一.单项选择题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.在一棵高度为k 的满二叉树中,结点总数为()。
A.2k-1 B.2k C.2k-1 D.⎣log 2 k ⎦+ 17.在下列存储形式中,哪一个不是树的存储形式?()A.双亲链表表示法B.孩子链表表示法C.孩子兄弟链表表示法D.顺序存储表示法8.n 个结点的完全有向图含有边的数目为()。
A.n*n B.n*(n+1) C.n/2 D.n*(n-1)9.n 个顶点的强连通图至少有()条边。
A.n B.n-1 C.n+1 D.n(n-1)10、高度为k 的二叉树的最大结点数为()。
A、2kB、2k-1C、2k–1D、2k-1–111、下列哪一种图的邻接矩阵是对称矩阵?()A、有向图B、无向图C、AOV 网D、AOE 网12、在下列存储形式中,哪一个不是树的存储形式?()A、双亲表示法B、孩子表示法C、孩子兄弟表示法D、顺序存储表示法13、下面哪一方法可以判断出一个有向图是否有环。
()A、深度优先遍历B、拓扑排序C、求最短路径D、广度优先遍历14.适用于折半查找的表的存储方式及元素排列要求为()。
A.链接方式存储,元素无序B.链接方式存储,元素有序C.顺序方式存储,元素无序D.顺序方式存储,元素有序15、一个算法应该是()。
A、程序B、特定问题求解步骤的描述C、要满足五个基本特性D、A 和C16、算法分析的两个主要方面是()。
数据结构期末复习题
数据结构期末复习题习题⼀绪论习题答案1.1 1. AB2. BD3. C4. AB5. CA6. CB7. B8. D9. B 10. B1.2 1. 线性结构、树形结构、图形结构、⾮线性结构2. 没有、1、没有、13. 前驱、1、后续、任意多个4. 任意多个5. ⼀对⼀、⼀对多、多对多6. 有穷性、确定性、可⾏性、输⼊、输出7. O(m*n)8. O (n 1 2)9. O (n2)10. log3n1.1 单项选择题1. 数据结构是⼀门研究⾮数值计算的程序设计问题中计算机的①以及它们之间的②和运算等的学科。
①A.操作对象B.计算⽅法C.逻辑存储D.数据映象②A.结构B.关系C.运算D.算法2. 数据结构被形式地定义为(K,R),其中K是①的有限集合,R是K上的②有限集合。
①A.算法B.数据元素C.数据操作D.逻辑结构②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. 调度⽅法②A. 可⾏性、可移植性和可扩充性 B. 可⾏性、确定性和有穷性C. 确定性、有穷性和稳定性D. 易读性、稳定性和安全性7. 线性表的逻辑顺序与存储顺序总是⼀致的,这种说法①。
(完整word版)数据结构期末复习题
数据结构期末复习题、选择题1. 以下说法中不正确的是(D)。
A. 数据元素是数据的基本单位B. 数据项是不可分割的最小可标识单位C. 数据可由若干个数据元素构成D. 数据项可由若干个数据元素构成2. 计算机所处理的数据一般具备某种内在联系,这是指(B)。
A. 数据和数据之间存在某种关系B. 元素和元素之间存在某种关系C. 元素内部具有某种结构D. 数据项和数据项之间存在某种关系3. 在数据结构中,与所使用的计算机无关的是数据的(A)结构。
A. 逻辑B. 存储C. 逻辑和存储D. 物理4. 数据的逻辑结构可以分为(C)两类。
A. 动态结构和静态结构B. 紧凑结构和非紧凑结构C. 线性结构和非线性结构D. 内部结构和外部结构5. 数据的逻辑结构是指(A)关系的整体。
A. 数据元素之间逻辑B. 数据项之间逻辑C. 数据类型之间D. 存储结构之间6. 以下数据结构中(D)属非线性结构。
A. 栈B. 串C. 队列D. 平衡二叉树7. 以下属于逻辑结构的是(C)。
A. 顺序表B. 哈希表C. 有序表D. 单链表8. 以下不属于存储结构的是(A)。
A. 栈B. 线索二叉树C. 哈希表D. 双链表9. 在计算机中存储数据时,通常不仅要存储个数据元素的值,而且还要存储(C)A. 数据的处理方法B. 数据元素的类型C.数据元素之间的关系D.数据的存储方法10. 数据结构在计算机内存中的表示是指(A)。
A. 数据的存储结构B. 数据结构C. 数据的逻辑结构D. 数据元素之间的关系11. 在数据的存储结构中,一个结点通常存储一个(B)A. 数据项B. 数据元素C. 数据结构D. 数据类型12. 在决定选择何种类型的存储结构时,一般不多考虑(A)A. 各结点的值如何B. 结点个数的多少C. 对数据有哪些运算D. 所用编程语言实现这种结构是否方便13. 计算机中算法指的是解决某一问题的有限运算序列,它必须具备输入、输出、(B)。
数据结构期末复习题
练习题:一、填空题1、元素项是数据的最小单位,数据元素是讨论数据结构时涉及的最小数据单位。
2、设一棵完全二叉树具有100个结点,则此完全二叉树有49个度为2的结点。
3、在用于表示有向图的邻接矩阵中,对第i列的元素进行累加,可得到第i个顶点的出度。
4、已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点,则该树中有12个叶子的结点。
n=n0+n1+n2+…+nm (1)又有除根结点外,树中其他结点都有双亲结点,且是唯一的(由树中的分支表示),所以,有双亲的结点数为:n-1=0*n0+1*n1+2*n2+…+m*nm (2)联立(1)(2)方程组可得:叶子数为:n0=1+0*n1+1*n2+2*n3+...+(m-1)*nm5、有一个长度为20的有序表采用二分查找方法进行查找,共有4个元素的查找长度为3。
6、对于双向链表,在两个结点之间插入一个新结点需要修改的指针共4个。
删除一个结点需要修改的指针共2个。
7、已知广义表LS=(a,(b,c,d),e),它的深度是2,长度是3。
8、循环队列的引入是为了克服假溢出。
9、表达式a*(b+c)-d/f的后缀表达式是abc+*df/-。
10、数据结构中评价算法的两个重要指标是时间复杂度和空间复杂度。
11、设r指向单链表的最后一个结点,要在最后一个结点之后插入s所指的结点,需执行的三条语句是r->next=s; r=s; r->next=null;12、设有一个空栈,栈顶指针为1000H(十六进制),现有输入序列为1,2,3,4,5,经过PUSH,PUSH,POP,PUSH,POP,PUSH,PUSH之后,输出序列是23,而栈顶指针值是1012_H。
设栈为顺序栈,每个元素占4个字节。
13、模式串P=‘abaabcac’的next函数值序列为01122312。
14、任意连通图的连通分量只有一个,即是自身。
15、栈的特性是先进后出。
16、串的长度是包含的元素个数。
数据结构期末复习题(有答案)
一、单选题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)。
数据结构期末复习题库(215道)
数据结构期末复习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 个()的有限序列。
《数据结构》期末复习题及参考答案
《数据结构》复习资料一单选题 (共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. 给出数组和链表在插入、删除操作中的时间复杂度,并解释为什么链表在某些情况下更优。
4. 阐述栈和队列的基本概念,以及它们在实际应用中的作用。
5. 描述栈的两种实现方式:顺序栈和链式栈,并讨论它们在空间和时间效率上的差异。
6. 解释队列的两种主要类型:先进先出(FIFO)和后进先出(LIFO),并给出它们各自的应用场景。
7. 讨论树结构的特点,并举例说明二叉树、平衡树和B树在数据存储和检索中的应用。
8. 描述二叉搜索树的插入和删除操作,并分析其时间复杂度。
9. 简述图的基本概念,包括有向图和无向图,以及它们在网络分析和路径搜索中的应用。
10. 比较深度优先搜索(DFS)和广度优先搜索(BFS)两种图遍历算法,并讨论它们在不同场景下的适用性。
11. 描述哈希表的工作原理,以及如何解决哈希冲突问题。
12. 讨论排序算法的基本概念,包括冒泡排序、选择排序、插入排序、快速排序和归并排序,并分析它们的时间复杂度和空间复杂度。
13. 简述堆排序算法的原理,并解释堆数据结构在排序过程中的作用。
14. 描述图的深度优先搜索(DFS)和广度优先搜索(BFS)算法的实现过程,并讨论它们在图遍历中的应用。
15. 讨论最小生成树的概念及其在网络设计中的应用,包括Prim算法和Kruskal算法的实现和比较。
16. 描述最短路径问题的基本概念,包括Dijkstra算法和Floyd算法,并分析它们在不同类型图中的应用。
17. 简述动态规划算法的基本原理,并给出一个实际问题的例子来说明其应用。
18. 讨论贪心算法的特点,并给出一个贪心算法解决的问题实例。
19. 描述分治算法的基本原理,并举例说明其在排序和搜索问题中的应用。
20. 简述递归算法的基本概念,并讨论递归和迭代在解决问题时的优劣。
数据结构期末考试复习题
习题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( )C.O(n)D.O( )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. 数据结构按逻辑结构可分为两大类,分别是____________?__和_________________。
数据结构期末考试复习题
数据结构期末考试复习题1第一部分线性一.选择题 1.以下说法正确的是。
A.数据元素是数据的最小单位。
B. 数据结构是带结构的各数据项的集合。
C.数据项是数据的基本单位。
D. 数据结构是带结构的数据元素的集合。
2. 在设计存储结构时,通常不仅要存储各数据元素的值,而且还要存储。
A.数据的处理方法B.数据元素的类型 D.数据的存储方法D.一对多C.数据元素之间的关系 A.一对一3.树状结构中的数据元素之间存在逻辑关系。
B.多对一C.多对多4.以下数据结构中,哪一个不属于线性结构。
A.串B.广义表C.栈D.树5.对一个具有n个结点的单链表,在表头位置插入其值等于x的结点时,操作的时间复杂度为。
A. O(1)B. O(x)C. O(n)D. O(n2)6. 设一顺序栈已含3个元素a、b、c,元素d正等待进栈。
那么下列4个序列中不可能出现的出栈序列是。
A. dcbaB. cdbaC. cbdaD. cadb 7. 如果栈采用顺序存储结构,则入栈操作时。
A. 必须判别栈是否满。
B. 必须判别栈是否空。
C. 判别栈元素的类型。
D. 对栈不做任何操作。
8.用一个大小为N的数组来实现循环队列Q,假定front 和rear分别为队头指针和队尾指针,判断该循环队列为满的条件是。
A.(+1)==B. ==C.(+1)%N==D. (+1)%N== 9.串S=“串string”的长度是。
A. 6B. 7C. 8D. 910.设二维数组arr[6][4]的每个元素占6个单元,按行优先顺序存放在起始地址为2000的连续内存单元中,则存储地址为2066的是元素。
A. arr[2][3] B. arr[3][3]C. arr[5][1]D. arr[4][1] 二.填空题1.根据数据元素之间关系的不同特性,通常有4类基本数据结构,它们是: (____________)、(___________)、(___________)、(___________)。
《数据结构》期末复习题-答案
《数据结构》期末复习题-答案1.以下与数据的存储结构无关的术语是( c )C、哈希表2.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( B )B、1083.假设带头结点的单向循环链表的头指针为head,则该链表为空的判定条件是( C )C、head–>next= =head4.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不可能出现的出栈序列是( D )D、2,3,5,1,6,45.下列关键字序列中,构成小根堆的是( A )A、{12,21,49,33,81,56,69,41}6.下列数据结构中,不属于二叉树的是( A )A、B树7.用顺序存储的方法来存储一棵二叉树,存放在一维数组A[1..N]中,若结点A[i]有右孩子,则其右孩子是( C )。
C、A[2i+1]8.设树T的高度为4,其中度为1、2、3、4的结点个数分别为4、2、1、1,则T中叶子数为( D )D、 89.有数据{53,30,37,12,45,24,96},从空二叉树开始逐个插入数据来形成二叉排序树,若希望高度最小,则应选择下面哪个序列输入( B )B、37,24,12,30,53,45,9610.对下面有向图给出了四种可能的拓扑序列,其中错误的是( C )C、5,1,6,3,4,211.m阶B-树中所有非终端(除根之外)结点中的关键字个数必须大于或等于( B )B、[m/2]-112.散列文件也称为( C )B 、索引文件13.数据结构是( D )D、相互之间存在一种或多种特定关系的数据元素的集合14.从逻辑关系来看,数据元素的直接前驱为0个或1个的数据结构只能是( C )C、线性结构和树型结构15.设p为指向双向循环链表中某个结点的指针,p所指向的结点的两个链域分别用p→llink和p→rlink表示,则同样表示p指针所指向结点的表达式是( D )D、p→llink→rlink16.若栈采用顺序存储方式存储,现两栈共享空间V[1..m],top[i]代表第i个栈( i =1,2)栈顶,栈1的底在v[1],栈2的底在V[m],则栈满的条件是( B )B、 top[1]+1=top[2]17.若一棵二叉树有11个叶子结点,则该二叉树中度为2的结点个数是( A )A、1018.树的先根序列等同于与该树对应的二叉树的( A )A、先序序列19.下面关于哈希(Hash,杂凑)查找的说法正确的是( C )C、不存在特别好与坏的哈希函数,要视情况而定20.下列序列中,( D )是执行第一趟快速排序后所得的序列。
《数据结构》期末复习题
4.每次从无序表中取出一个元素,把它插入到有序表中的适当位置,此种排序方法叫做()排序
A.插入B.交换
C.选择D.归并
5.在一个图中,所有顶点的度数之和等于所有边数的( )倍。
A.2B.1
C.3D.4
6.队列的删除操作是在()进行。
A.队首B.队尾
C.队前D.对后
C.树是一种线性的数据结构
D.用一维数组存储二叉树,总是以先序顺序遍历各结点
25.在计算机的存储器中表示时,物理地址与逻辑地址相同并且是连续的,称之为B
A.逻辑结构B.顺序存储结构
C.链式存储结构D.以上都不对
26.以下关于算法特性的描述中,B是正确的。
(1)算法至少有一个输入和一个输出
(2)算法至少有一个输出但是可以没有输入
《数据结构》期末复习题
一、单选题
1.某程序的时间复杂度为(3n+nlog2n+n2+8),其数量级表示为()。
A.O(n)B.O(nlog2n)
C.O(n2)D.O(log2n)
2.队列的插入操作是在()进行。
A.队首B.队尾
C.队前D.对后
3.二叉树上叶结点数等于()。
A.分支结点数加1B.单分支结点数加1
A.1207 B.1209
C.1211 D.1213
55. 算法指的是()
A.计算机程序B.计算方法
C.排序算法D.解决问题的有限运算序列
56.在一个单链表中,若q所指结点是p所指结点的前驱结点,若在q与p之间插入一个s所指的结点,则执行()。
A s→link=p→link; p→link=s; B p→link=s; s→link=q;
《数据结构》期末考试复习题及参考答案
数据结构复习题(课程代码 252259)一、填空题(本大题共40小题)1.队列中是按照______先进先出______的原则进行数据元素的增删。
2.___栈__又称为LIFO表。
3.在顺序存储的完全二叉树中,若编号为i的结点有左孩子结点,则其右孩子结点的编号为___2i+1___。
4.存储地址与关键字之间存在某种映射关系的存储结构为_______散列存储结构_______。
5.在串S=“structure”中,以r为首字符的子串有_9_个。
6.设有整型二维数组M[4][3],每个元素(整数)占2个存储单元,元素按行的顺序存储,数组的起始地址为200,元素M[1][1]的地址是___208____。
7.在一个具有n个顶点的无向完全图中,包含有___ n(n-1)/2_____条边,在一个具有n个顶点的有向完全图中,包含有__ n(n-1)______条边。
8.假定一个线性表为(12,23,74,55,63,40),若按Key % 4条件进行划分,使得同一余数的元素成为一个子表,则得到的四个子表分别为_____(12,40)()(74)(23,55,63)____。
9.向一棵B_树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度____增加1______。
10.在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为__ O(log2n)______,整个堆排序过程的时间复杂度为__ O(nlog2n)______。
11.在快速排序、堆排序、归并排序中,____归并_____排序是稳定的。
12.一棵深度为5的满二叉树中的结点数为_______31_______个。
13.在含n个顶点和e条边的无向图的邻接矩阵中,非零元素的个数为__2e __。
14.从一棵二叉排序树中查找一个元素时,若元素的值大于根结点的值,则继续向____右子树____查找。
15._____拓朴排序______可以判断出一个有向图中是否有环。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
30
二叉树转换成森林
步骤1:抹线-将二叉树根结点与其右孩子连线、沿右分支 搜索到的所有右孩子间连线全部抹掉,使之变成多棵二叉树 步骤2:还原-将孤立的二叉树还原成树
A
B
E
CF G
DH
I J
二叉树B
A
A
E
G
B
E
B
F
H
CF G
C D
I J
DH
I JB
A
EG
C DF H I B转换成的森林F J31
练习:写出下图所示森林的先序和中序遍历序列并 将之转换成一棵二叉树
24
森林转换成二叉树
步骤1:转换-将各棵树分别转换成二叉树 步骤2:加线-将每棵树的根结点用线相连 步骤3:旋转-以第一棵树根结点为二叉树的根,再以根结 点为轴心,顺时针旋转,构成二叉树
A
EG
B C DF H I
J
森林F
AEG
B FH
C
I
D
J
F中每棵树对应的二叉树
25
森林转换成二叉树
步骤1:转换-将各棵树分别转换成二叉树 步骤2:加线-将每棵树的根结点用线相连 步骤3:旋转-以第一棵树根结点为二叉树的根,再以根结 点为轴心,顺时针旋转,构成二叉树
}
18
例3:按先序序列建立二叉树的二叉链表
已知先序序列:A B C 0 0 D E 0 G 0 0 F 0 0 0 (其中0表示空格字符, 空指针)建立相应的二叉链表
A
B
C
D
E
F
G
19
例:对于前序遍历与中序遍历结果相同的二叉树( F );
对于前序遍历和后序遍历结果相同的二叉树为( B)。
A.一般二叉树 B.只有根结点的二叉树 C.根结点
A
EG
A EG
B C DF H I B
FH
J
C
I
D
J
森林F
26
森林转换成二叉树
步骤1:转换-将各棵树分别转换成二叉树 步骤2:加线-将每棵树的根结点用线相连 步骤3:旋转-以第一棵树根结点为二叉树的根,再以根结 点为轴心,顺时针旋转,构成二叉树
A
EG
A EG
A
B C DF H I B
FH
B
E
J
C
I CF G
作业: 1、简述逻辑结构和存储结构的联系? 2、数据结构和数据类型有什么区别? 3、分析以下算法的时间复杂度
void func(int n) {int i=0,s=0;
while (s<n) {i++; s=s+i; }
}
1
顺序表算法设计练习:
已知一个顺序表L,其中的元素递增有序排 列,设计一个算法插入一个元素x后保持该 顺序表仍递增有序排列。
左子树LB从T1根结点的子树森林 (T11, T12, …, T1m)转换来; 右子树RB是从森林F’={T2, T3, …, Tm} 转换而来。 (2) 二叉树转换为森林的规则 若B为空, F为空; 若B非空,则F中第一棵树T1的根为二叉树的根root(B); T1根的子树森林F1由B的左子树LB转换而来; F 中除 T1 外其余树组成的森林F’={ T2, T3, …, Tn } 由B 的右 子树 RB 转换而来。
2020/5/3
2
参考算法:
Void insert (Sqlist &L,ElemType x) {
int i=0, j; if (L.length+1>L.listsize)
p24 while (i<L.length && x>=L.elem[i]) i++; for (j=L.length-1;j>=i; j--) L.elem[j+1]=L.elem[j];
r=r->next;
}
if (r!=Null)
{p->next=q->next;
free(q);}
else return 0;
return 1;
}
2020/5/3
9
链表算法设计练习:
设计一个算法,在带头结点的单链表head中 删除一个data域值最小的结点,假设该结点 唯一。
2020/5/3
10
D
J
DH
森林F
F转换的二叉树 B
I J27
二叉树转换成森林
步骤1:抹线-将二叉树根结点与其右孩子连线、沿右分支 搜索到的所有右孩子间连线全部抹掉,使之变成多棵二叉树 步骤2:还原-将孤立的二叉树还原成树
A
B
E
CF G
DH
I J
二叉树B
28
二叉树转换成森林
步骤1:抹线-将二叉树根结点与其右孩子连线、沿右分支 搜索到的所有右孩子间连线全部抹掉,使之变成多棵二叉树 步骤2:还原-将孤立的二叉树还原成树
提示: n0=n2+1
15
例3:已知某二叉树先序序列 { ABHFDECKG } 和中序序列 { HBDFAEKCG }, 画出该二叉树。
A HBDF EKCG
A
B
E
A
A
B
EKCG
B EKCG
H DF
HF
A D
B
E
H F KCG
HF
C
D
D
KG
16
例1:统计二叉树中叶子结点的个数
Status CountLeaf (BiTree T, int & count) { if ( T ) { if ( (T->lchild ==NULL) && (T->rchild ==NULL)) { count + +; return OK; } CountLeaf( T -> lchild, count); // 统计左子树中叶子结点个数 CountLeaf( T -> rchild, count); // 统计右子树中叶子结点个数 } else return ERROR;
Int match (char exp[], int n) {char st[Maxsize]; int top=-1; int i=0,tag=1; while (i<n && tag==1)
{if (exp[i]==‘(’ || exp[i]==‘[‘ || exp[i]==‘{’ ) {top++; st[top]=exp[i];}
if (exp[i]==‘)’) if (st[top]==‘(’ top--; else tag=0;
if (exp[i]==‘]’) if (st[top]==‘[’ top--; else tag=0;
if (exp[i]==‘}’) if (st[top]==‘{’ top--; else tag=0;
int count=0; for (i=0;i<=L.length-1;i++)
if (L.elem[i]==x) count++;
else L.elem[i-count]=L.elem[i];
}
2020/5/3
7
链表算法设计练习:
设计一个算法删除带头结点的单链表L中值 为x的结点的直接前驱结点。
L.elem[i]=x; L.length++; }
2020/5/3
3
顺序表算法设计练习:
试写一个算法,实现顺序表的就地逆置, 即利用原表的存储空间将线性表。 (a1,a2,…,an)逆置为(an,an-1,…,a1)。
2020/5/3
4
参考算法:
Void reverse (Sqlist &L) {
A
A
B
E
B
E
CF G CF G
DH
DH
I
I
J
J
二叉树B
29
二叉树转换成森林
步骤1:抹线-将二叉树根结点与其右孩子连线、沿右分支 搜索到的所有右孩子间连线全部抹掉,使之变成多棵二叉树 步骤2:还原-将孤立的二叉树还原成树
A
A
B
E
B
E
CF G
DH
I J
二叉树B
CF G DH I J
A
E
B
F
C
D
G
H I
2020/5/3
13
作业:
1、设一系列正整数存放在一个数组中,试设计算法,将所 有奇数存放在数组的前半部分,将所有的偶数放在数组的 后半部分。要求尽可能少用临时存储单元并使时间最少。
2、设计一个算法,计算一个三元组表表示的稀疏矩阵的对 角线元素之和。
2020/5/3
14
例:设树T的度为4,其中度为1,2,3和4的结点个数分别 为4,2,1,1 则T中的叶子数为( )
int i=0, j=L.length-1; while (i<j)
{ L.elem[i] <-> L.elem[j]; i++; j--;
} }
2020/5/3
5
顺序表算法设计练习:
试设计一个高效的算法,删除线性表L中所 有值为x的元素。
2020/5/3
6
参考算法:
Void deletelist (Sqlist &L, ElemType x) {
A
K
B C I J GH D
EF
先序遍历:ABCDEFIKJGH 中序遍历:BEFDCIAJGHK
域的个数是:( )
A.不确定
B. 0
C. 1