电大《数据结构》2020-2021期末试题及答案
- 格式:doc
- 大小:43.00 KB
- 文档页数:8
《数据结构》期末考试试题及答案一、单项选择题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. 请简要介绍树的基本概念及常见的树结构。
一、单项选择题1.数据的物理结构(D )。
A.与数据的逻辑结构无关 B.仅仅包括数据元素的表示C.只包括数据元素间关系的表示 D.包括数据元素的表示和关系的表示2.数据元素是数据的基本单位,它(C )。
A.只能有一个数据项组成B.至少有二个数据项组成C.可以是一个数据项也可以由若干个数据项组成D.至少有一个数据项为指针类型3.从n个数中选取最大元素,(C )。
A.基本操作是数据元素间的交换B.算法的时间复杂度是O(n2)C.算法的时间复杂度是O(n) D.需要进行(n+1)次数据元素间的比较4.线性表的顺序结构中,(C )。
A.逻辑上相邻的元素在物理位置上不一定相邻B.数据元素是不能随机访问的C.逻辑上相邻的元素在物理位置上也相邻D.进行数据元素的插入、删除效率较高5.以下表中可以随机访问的是(D )。
A.单向链表 B.双向链表C.单向循环链表D.顺序表6.带头结点的单向链表为空的判断条件是(B )(设头指针为head)。
A.head = =NULL B.head->next= =NULL C.head->next= =head D.head!=NULL 7 .设顺序存储的线性表长度为n,对于删除操作,设删除位置是等概率的,则删除一个元素平均移动元素的次数为( A )。
A.(n+1)/2 B.n C.2n D.n-i8.线性结构中数据元素的位置之间存在(A)的关系。
A.一对一B.一对多C.多对多D.每一个元素都有一个直接前驱和一个直接后继9.设top是一个链栈的栈顶指针,栈中每个结点由一个数据域data和指针域next组成,设用x接收栈顶元素,则出栈操作为(A )。
A.x=top->data;top=top->next; B.top=top->next;x=top->data;C.x=top-> next;top=top-> data; D.top->next =top; x=top->data;10.设顺序存储的线性表长度为n,要删除第i个元素,按课本的算法,当i=(C)时,移动元素的次数为3A.3 B.n/2 C.n-3 D.411.以下说法正确的是(C )。
2020-2021学年《数据结构》期末考试复习试题一、单项选择题1.对于一个算法,当输入非法数据时,也要能作出相应的处理,这种要求称为()。
(A)、正确性(B). 可行性(C). 健壮性(D). 输入性2.设S为C语言的语句,计算机执行下面算法时,算法的时间复杂度为()。
for(i=n-1;i>=0;i--)for(j=0;j<i;j++) S;(A)、n2(B). O(nlgn) (C). O(n) (D). O(n2)3.折半查找法适用于()。
(A)、有序顺序表(B)、有序单链表(C)、有序顺序表和有序单链表都可以(D)、无限制4.顺序存储结构的优势是()。
(A)、利于插入操作(B)、利于删除操作(C)、利于顺序访问(D)、利于随机访问5.深度为k的完全二叉树,其叶子结点必在第()层上。
(A)、k-1 (B)、k (C)、k-1和k (D)、1至k6.具有60个结点的二叉树,其叶子结点有12个,则度过1的结点数为()(A)、11 (B)、13 (C)、48 (D)、377.图的Depth-First Search(DFS)遍历思想实际上是二叉树()遍历方法的推广。
(A)、先序(B)、中序(C)、后序(D)、层序8.在下列链队列Q中,元素a出队的操作序列为()(A)、p=Q.front->next; p->next= Q.front->next;(B)、p=Q.front->next; Q.front->next=p->next;(C)、p=Q.rear->next; p->next= Q.rear->next;(D)、p=Q->next; Q->next=p->next;9. Huffman树的带权路径长度WPL等于()(A)、除根结点之外的所有结点权值之和(B)、所有结点权值之和(C)、各叶子结点的带权路径长度之和(D)、根结点的值10.线索二叉链表是利用()域存储后继结点的地址。
数据结构期末考试题及答案一、选择题(每题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算法。
首先,构建模式字符串的前缀函数,该函数用于记录模式字符串中每个位置的最长相同前缀和后缀的长度。
2021国家开放大学电大本科《数据结构》期末试题及答案(试卷号:1252)一、单项选择题(每小题3分,共30分)1.以下说法不正确的是()。
A. 线性表的链式存储结构不必占用连续的存储空间B. -种逻辑结构只能有唯一的存储结构C. 一种逻辑结构可以有不同的存储结构D. 线性表的顺序存储结构必须占用连续的存储空间2.单向链表所具备的特点之一是()。
A. 可以随机访问表中任一结点B. 需要占用连续的存储空间C. 插入元素和删除元素的操作不需要移动元素D. 可以通过指向某元素的指针操作,直接访问到该结点的直接前驱结点3.线性结构中数据元素的位置之间存在()的关系。
A. 多对多B. 一对多C. 一对一D. 每一个元素都有一个直接前驱和一个直接后继在一个单向饶表中・P和q分别是指向结点类型的指针.要删除p所指结点的百援后维结点,可执行().A. >ncxtip~>nexr~q —>nextR q=pip=q—>rwxtC. q=p —>nrxl;p—>ntxt = qD. q = p;p—>next = q5 .设有带头纳点的旦头指针为head的非空的羊向也表,指针p折向其尾结点.要使该单向饨表成为不带头结点的单向循环锤表.则可利用下述语句s he a d=head->ncxt;ffi().A. p33 headB. p= NULLC. p—2>next—headD. hcad=»p6:元素2().14.160.180按顺序依次进栈.则该找的不可能输出序列是((迎栈出枝可以交替进行).A. 180.l60tH.20 B, 20,14.160,18()C. 180,160.20.14 I). 14.20.180.1607 .设有一个15阶的•对林加阵A 《华一个元素为5・.).采用压端存储的方式.将其下三角 部分以行序为卜:序存储到一雄数tfl H 中(数坦下标从】井婿),则炬仰中元素Hv.i 在一雄散出 B 中的下坏J8K ).8.设 棵4 n 个叶纳点的二又树.度数为1的结点有4个.则成柯共有(〉个靖点.K 2n+3C2n4-29. 役根靖点所在层为第-层,-棵具有5层的完全二叉树,感后一层有6个结点・恻1安同感共有( )个拍点・15已知加图1所示的一个图.若从顶点&出发,按深度优先搜京法进行遍历,则可能得到的一种T#点序列为( >•-A.abecdlg C. aebcldg11. 把数据存储到计算机中.并具体体现数据元素间的造料关系称为 靖构.12. 设有一个长度为22的Iffi 序表,要JM 除第8个元素需移动元震的个数为. 13. 在一^二叉何中.若编号为i 的结点存在右孩f •则右孩孑的整序海号为・ 14. 说一摞吩夫曼树共有18个非叶结点•则该树慈共有 个结点・ 15. 校元素的进,出栈次序是:后进.16. 在对10个记录的序列(8,36.19,7B,L1O.53.45.27.68〉迪行直接捅入措序时,当把D. 2n + -1K atrfebdgD. nrdfcbg评卷人二.填空IH (每小题2分.共24分)第6个延承10抽入别&序衣时.为寸找隔人元素间需比较 --------------- 次・\7. n 个元京进行》1泡法检序・通1T 需要避打« I M9W 泡,武中串i 48K 他旌1■要罐行 _______ 次元K 间的比较. —低序列7.LL2・S.3.B.6 III t\ ftttfll-次H 并后的M 眼序列肥19. 中序iUffi •»W <4 fS W ,个"序序列・ 20. 广义A (hUb.a)«f»e«((id)»k))的保fltJK _ _• 21. _ 姑知中.敢据元素向存在・・对霉的关系.22. 字符申・l M boijin||M .42B M brf .M 3--brifnng M .A 1 *"MC M 小的是 --------------------23. 设庄我&为(D 岫出切I 述在也如tt 行折半介枚ME 应的判定树也中靖盘用下抓5小). (2) 说明不成功食成元庶45隔鹭弗过多少次比枚?(3) 求在牌慨骡* (1卜.■成功有我的平均比较次也,,24.⑴ micl*的炸字中列为(37,67.43.25.27.32).tft 出柯用地抑序(坝仲元素H M 小无K )的方维债0的初的地(嘤求以兜金二乂 W«H£)・⑵对关峥亨序列(40.73.49.3l.3JM7>果用快速{•序.帝山以第一个。
数据结构期末考试题及答案一、选择题(每题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. 请简要说明栈的应用场景,并给出一个具体实例。
《数据结构(本)》期末综合练习题一、单选选择题1.栈和队列的共同特点是(C)。
A. 都是先进先出B. 都是操作受限的线性结构C. 都是先进后出D. 元素都可以随机进出2.数据的存储结构包括数据元素的表示和(C)。
A. 数据处理的方法B. 数据元素的类型C. 数据元素间的关系的表示D. 相关算法3.对一个栈顶指针为top的链栈进行入栈操作,通过指针变量p生成入栈结点,则执行p=(struct node *)malloc(sizeof(struct node);p->data=a;和(C)。
A. top->next=p; p=top;B. p->next=top; p=top;C. p->next=top; top=p;D. top=top->next; p=top;4.树状结构中数据元素的位置之间存在(B)的关系。
A. 每一个元素都有一个直接前驱和一个直接后继B. 一对多C. 一对一D. 多对多5.设头指针为head的非空的单向链表,指针p指向尾结点,则通过以下操作(D)可使其成为单向循环链表。
A. head = p;B. p=head;C. p->next = NULL ;D. p->next=head;6.设有一个长度为26的顺序表,要插入一个元素,并使它成为新表的第6个元素,需移动元素的个数为(D)。
A. 22B. 19C. 20D. 217.一种逻辑结构(C)。
A. 与存储该逻辑结构的计算机相关B. 是指某一种数据元素的性质C. 可以有不同的存储结构D. 只能有唯一的存储结构8.头指针为head的带头结点的单向循环链表,p所指向尾结点,要使该链表成为不带头结点的单向循环链表,可执行head=head->nex;和(A)。
A. p->next=head;B. p= head->nextC. head->next=pD. head->next=p->next9.把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为(D)。
XXX大学2020-2021学年第一学期计算机科学与技术专业《数据结构》期末考试题及答案(试卷B)一、填空题(每空1.5分,共30分)。
⒈任何一个算法的设计取决于选定的数据(逻辑)结构,而算法的实现依赖于采用的。
⒉数据结构是一门研究的程序设计问题中计算机的操作对象以及它们之间的等等的学科。
⒊带头结点的单向链表L为空的判定条件是;非空的循环单链表head的尾结点p满足条件。
⒋栈和队列是两种特殊的线性表,栈的特点是,栈的典型应用有和。
⒌在具有n个单元的循环队列中,队列满时共有个元素。
⒍若串的长度不能确定,可采用动态存储结构,为串值分配一个存储空间,同时建立一个串的描述子以指示串值的长度和串在存储空间中的位置,称该结构为。
⒎稀疏矩阵一般的压缩存储方法有两种,即和十字链表。
⒏二维数组A[10][20]采用列序为主方式存储,每个元素占10个存储单元,且A[0][0]的存储地址是2000,则A[6][12]的地址是。
⒐一棵高度为h的满二叉树共有个终端结点。
⒑已知一棵完全二叉树的第5层有3个结点,其叶子结点数是。
⒒具有8个顶点的有向完全图有条弧。
⒓在无向图G的邻接矩阵A中,若A[i][j]等于1,则A[j][i]等于。
⒔对线性表进行二分查找时,要求线性表必须以方式存储,且结点按关键字排列。
⒕在分块查找方法中,首先查找索引,然后再查找相应的。
⒖与快速排序和堆排序相比,归并排序的最大特点是,它是一种的排序方法。
二、判断题(每小题1分,共10分)若正确,填入“T”,否则填入“F”。
⒈线性表的逻辑顺序与存储顺序总是一致的。
();⒉一个栈的入栈序列是12345,则栈的输出序列12345是不可能的。
();⒊将递归算法转换成对应的非递归算法时,通常需要使用栈。
();⒋设有两个串p和q,求q在p中首次出现的位置的运算称作求子串。
();⒌二维数组是其数据元素为线性表的线性表。
();⒍线索二叉树是一种逻辑结构。
();⒎深度为K的完全二叉树至少有2K-1个结点。
2020-2021学年《数据结构与算法》期末考试复习试题一、选择题。
1.在数据结构中,从逻辑上可以把数据结构分为 C 。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构2.数据结构在计算机内存中的表示是指 A 。
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 。
(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进 C.分析算法的易读性和文档性(2)A.空间复杂度和时间复杂度 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性8.下面程序段的时间复杂度是 O(n2) 。
s =0;for( I =0; i<n; i++)f or(j=0;j<n;j++)s +=B[i][j]; sum =s ;9.下面程序段的时间复杂度是 O(n*m) 。
for( i =0; i<n; i++)for(j=0;j<m;j++)A[i][j] = 0;10.下面程序段的时间复杂度是 O(log3n) 。
i = 0;while(i<=n)i = i * 3;11.在以下的叙述中,正确的是 B 。
数据结构期末考试题及答案一、单项选择题(每题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个元素的时间复杂度是___________。
一、单项选择题1.数据的物理结构(D )。
A.与数据的逻辑结构无关 B.仅仅包括数据元素的表示C.只包括数据元素间关系的表示 D.包括数据元素的表示和关系的表示2.数据元素是数据的基本单位,它(C )。
A.只能有一个数据项组成B.至少有二个数据项组成C.可以是一个数据项也可以由若干个数据项组成D.至少有一个数据项为指针类型3.从n个数中选取最大元素,(C )。
A.基本操作是数据元素间的交换B.算法的时间复杂度是O(n2)C.算法的时间复杂度是O(n) D.需要进行(n+1)次数据元素间的比较4.线性表的顺序结构中,(C )。
A.逻辑上相邻的元素在物理位置上不一定相邻B.数据元素是不能随机访问的C.逻辑上相邻的元素在物理位置上也相邻D.进行数据元素的插入、删除效率较高5.以下表中可以随机访问的是(D )。
A.单向链表 B.双向链表C.单向循环链表D.顺序表6.带头结点的单向链表为空的判断条件是(B )(设头指针为head)。
A.head = =NULL B.head->next= =NULL C.head->next= =head D.head!=NULL 7 .设顺序存储的线性表长度为n,对于删除操作,设删除位置是等概率的,则删除一个元素平均移动元素的次数为( A )。
A.(n+1)/2 B.n C.2n D.n-i8.线性结构中数据元素的位置之间存在(A)的关系。
A.一对一B.一对多C.多对多D.每一个元素都有一个直接前驱和一个直接后继9.设top是一个链栈的栈顶指针,栈中每个结点由一个数据域data和指针域next组成,设用x接收栈顶元素,则出栈操作为(A )。
A.x=top->data;top=top->next; B.top=top->next;x=top->data;C.x=top-> next;top=top-> data; D.top->next =top; x=top->data;10.设顺序存储的线性表长度为n,要删除第i个元素,按课本的算法,当i=(C)时,移动元素的次数为3A.3 B.n/2 C.n-3 D.411.以下说法正确的是(C )。
最新国家开放大学电大本科《数据结构》期末题库及答案考试说明:本人针对该科精心汇总了历年题库及答案,形成一个完整的题库,并且每年都在更新。
该题库对考生的复习、作业和考试起着非常重要的作用,会给您节省大量的时间。
做考题时,利用本文档中的查找工具,把考题中的关键字输到查找工具的查找内容框内,就可迅速查找到该题答案。
本文库还有其他网核及教学考一体化答案,敬请查看。
《数据结构》题库及答案一一、单项选择题。
在括号内填写所选择的标号(每小题2分。
共l8分)1.下面程序段的时间复杂度为( )。
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.0(m+n)2.在二维数组中,每个数组元素同时处于( )个向量中。
A.0 B.1C.2 D.n3.设有两个串t和P,求P在t中首次出现的位置的运算叫做( )。
A.求子串 B.模式匹配C.串替换 D.串连接4.利用双向链表作线性表的存储结构的优点是( )。
A.便于单向进行插入和删除的操作B.便于双向进行插入和删除的操作C.节省空间D.便于销毁结构释放空问5.设链式栈中结点的结构为(data,link),且top是指向栈顶的指针。
若想在链式栈的栈顶插入一个由指针s所指的结点,则应执行( )操作。
A.top一>link=S;B.s一>link=top一>link;top一>link=S;C.S-->link=top;top—S;D.s一>link=top;top—top一>link;6.一棵具有35个结点的完全二叉树的高度为( )。
假定空树的高度为一l。
A.5 B.6C.7 D.87.向具有n个结点的堆中插入一个新元素的时间复杂度为( )。
A.O(1) B.0(n)C.O(log2n)D.O(nlog2n)8.在一棵AVL树中,每个结点的平衡因子的取值范围是( )。
最新国家开放大学电大本科《数据结构》期末试题标准题库及答案(试卷号:1252 )考试说明:本人汇总了历年来该科的试题及答案,形成了一个完整的标准考试题库,对考生的复习和考试起着非常重要的作用,会给您节省大量的时间。
内容包含:单选题、填空题、程序运行后的输出结果、函数的功能。
做考题时,利用本文档中的查找工具(Ctrl+F),把考题中的关键字输到查找工具的查找内容框内,就可迅速查找到该题答案。
本文库还有其他网核、机考及教学考一体化试题答案,敬请查看。
《数据结构》题库一一、单项选择题(每小题3分,共30分)二、填空题(每小题2分,共24分)三、综合题(每小题6分,共30分)四、程序填空题(每空2分,共16分)试题答案及评分标准(仅供参考)《数据结构》题库二一、单项选择题(每小题3分,共30分)试题答案及评分标准(仅供参考)《数据结构》题库三一、单项选择题(每小题3分,共30分)二、填空题(每小题2分,共24分)三、综合题(每小题6分,共30分)四、程序填空题(每空2分,共16分)试题答案及评分标准(仅供参考)《数据结构》题库四一、单项选择题(每小题3分,共30分)试题答案及评分标准(仅供参考)一、单项选择题(每小题3分,共30分)1.C 2.B 3.A 4.C 5.B 6.C 7.A 8.D 9.A 10.D二、填空题(每小题2分,共24分)11.先出12.树形13.行下标列下标数组元素14.315.存储位置16. 1017. 2018.二叉排序树19.叶20.421. 2,4,3;5,6,8,7,922. a2《数据结构》题库五一、单项选择题(每小题3分,共30分)二、填空题(每小题2分,共24分)三、综合题(每小题6分,共30分)四、程序填空题(每空2分,共16分)试题答案及评分标准(仅供参考)一、单项选择题(每小题3分,共30分)1.A 2.D 3.C 4.B 5.B 6.C 7.B 8.C 9.A10.C 二、填空题(每小题2分,共24分)11.图状12. n-j13.二叉排序树14. 1,2,4,8,3,5,915.416.317.518.319.920. 1221. 3222.7《数据结构》题库六一、单项选择题(每小题3分,共30分)二、填空题(每小题2分,共24分)三、综合题(每小题6分,共30分)四、程序填空题(每空2分,共16分)试题答案及评分标准(仅供参考)一、单项选择题(每小题3分,共30分)1.A 2.D 3.C 4.B 5.B 6.C 7.B 8.C 9.A10.C二、填空题(每小题2分,共24分) 11.图状12. n-j13.二叉排序树14. 1,2,4,8,3,5,915.416.317.518.319.920. 1221. 3222.7。
国家开放大学电大本科《数据结构》期末试题及答案〔试卷号:1252〕用分|评卷人| 工.———一、单项选择腰〔把合适的选项Ml号填写在括号内。
符小分.共----------------------- 45 分〕】・在数据结构中.从谟捌上可以把数据结枸分为《A.动态结构和静态结构C.内部结构和外部结构2.下面程序段的时间复杂度是〔J.H.紧密籍构和非紧漠结构D.找性结构和非线性结构for(i=l i!<- nii4-4 )fcr(i=顷 V = n$ j + 十〞for(k=l ik< = nilc-f- +)cCiWAcEE+MiNk】"住1口\2(XD& 0( logj n >C. O(n)D.〔〕3〕3.在一个单堡表中p指向结点a・q疳向结点A的宜接后撰结点b.要删除结点b.可执行〔〕•A. p~ >ncxt ~q >nrxt C. p —>next = qB. p«q ->nextD・ p—>next = q4.讹0 •个氏世为■的响序戊•要在.第,个兀素之UU〔也就是柚人无素作为新&的t 元蒙〕・!•人一个兀索•网椎劫元泰个散为〔A> n—1B. n-i^ 1C n—i+l D・i5.一个队刊的入队序州站L2.LL南队列的知出序列惬〔A. 4.3,2J C L4.3.2K 1.2.3.4 11 3,2.1.16. 在一个tUKM*l为mp的燃蚀中.将一卜pIMf所桁的M点入校•应执Ae top—>next*pK p—>nrx< - top :>nrxt i lop- >nrxt p(\ p >next*tupi 1叫尸"Pfh p >next top >nrxti top lt)p->nexi7. n|Wr-个棚环队州Q(JB 8几•素为m)为满的条fllH )・A. Q->front - - Q -: -rearK Q- > front I Q— >gr〔*. Q —Xronl 《Q—Arsr+1〕% n\D. Q —>froni! IQ—>fr"+1〉X m8. OR个甲p和加4中地p的子巾•求Q在p中H次出现的位置的算Ifc林为〔〕•A.求子申H.C模式西ft! 口,求中长9. -个N空广义&的AK 〕.A.不可能是障于H.RfiB暴于取C HIBftUK-f D・可以址于去或瞬*10. 料中的留点散等于所础点的度数如〔〕・A. IB. 0C 2 D.一1it a m h.»5/2的靖仪故皱参为〔〕.A- M H. 15c« 1612.在一个图G中,所有顶点的度数之和等于所有边数之和的〔〕倍。
2020-2021学年数据结构期末考试试题一、单项选择题(每小题2分,共20分)1.数据的运算a 。
A.效率与采用何种存储结构有关B.是根据存储结构来定义的C.有算术运算和关系运算两大类D.必须用程序设计语言来描述答:A。
2. 链表不具备的特点是 a 。
A.可随机访问任一结点B.插入删除不需要移动元素C.不必事先估计存储空间D.所需空间与其长度成正比答:参见本节要点3。
本题答案为:A。
3. 在顺序表中删除一个元素的时间复杂度为 c 。
A.O(1)B.O(log2n)C.O(n)D.O(n2)答:C。
4.以下线性表的存储结构中具有随机存取功能的是 d 。
A. 不带头结点的单链表B. 带头结点的单链表C. 循环双链表D. 顺序表解 D。
5. 一个栈的进栈序列是a,b,c,d,e,则栈的不可能的输出序列是 c 。
A.edcbaB.decbaC.dceabD.abcde答:C。
6. 循环队列qu的队空条件是 d 。
A. (qu.rear+1)%MaxSize==(qu.front+1)%MaxSizeB. (qu.rear+1)%MaxSize==qu.front+1C.(qu.rear+1)%MaxSize==qu.frontD.qu.rear==qu.front答:D。
7. 两个串相等必有串长度相等且 b 。
A.串的各位置字符任意B.串中各位置字符均对应相等C.两个串含有相同的字符D.两个所含字符任意答:B。
8. 用直接插入排序对下面四个序列进行递增排序,元素比较次数最少的是c 。
A.94,32,40,90,80,46,21,69B.32,40,21,46,69,94,90,80C.21,32,46,40,80,69,90,94D.90,69,80,46,21,32,94,40答:C。
9. 以下序列不是堆(大根或小根)的是 d 。
A.{100,85,98,77,80,60,82,40,20,10,66}B.{100,98,85,82,80, 77,66,60,40,20,10}C.{10,20,40,60,66,77,80,82,85,98,100}D.{100,85,40,77,80, 60,66,98,82,10,20}答:D。
最新国家开放大学电大《数据结构》期末题库及答案考试说明:本人针对该科精心汇总了历年题库及答案,形成一个完整的题库,并且每年都在更新。
该题库对考生的复习、作业和考试起着非常重要的作用,会给您节省大量的时间。
做考题时,利用本文档中的查找工具,把考题中的关键字输到查找工具的查找内容框内,就可迅速查找到该题答案。
本文库还有其他网核及教学考一体化答案,敬请查看。
《数据结构》题库及答案一一、单项选择题1. 给定有n个元素的向量,建立一个有序单链表的时间复杂度是( C )。
A. O(1)B. O(n)C. O(n2)D. O(nlog2n)2. 带表头的双向循环链表的空表满足( B )。
A. first=NULL;B. first->rLink==firstC. first->lLink==NULLD. first->rLink==NULL3. 栈的插入和删除操作在( A )进行。
A. 栈顶B. 栈底C. 任意位置D. 指定位置4. 在一个顺序存储的循环队列中,队头指针指向队头元素的( A )位置。
A. 前一个B. 后一个C. 当前D. 后面5. 假定一个顺序存储的循环队列的队头和队尾指针分别为front和rear,则判断队空的条件为( D )。
A. front+1 == rearB. rear+1 == frontC. front == 0D. front == rear6. 设链式栈中结点的结构为(data, link),且top是指向栈顶的指针。
若想摘除链式栈的栈顶结点,并将被摘除结点的值保存到x中,则应执行( A )操作。
A. x=top->data; top=top->link;B. top=top->link; x=top->data;C. x=top; top=top->link;D. x=top->data;7. 为增加内存空间的利用率和减少溢出的可能性, 由两个栈共享一块连续的内存空间时, 应将两栈的( D )分别设在这块内存空间的两端。
电大《数据结构》2020-2021期末试题及答案一、单项选择题1. 一个数组元素a 与( A )的表示等价。
A. *(a+i)B. a+iC. *a+iD. &a+I2.执行下面程序段时,执行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)/23. 当一个作为实际传递的对象占用的存储空间较大并可能被修改时,应最好说明为( B ),以节省参数值的传输时间和存储参数的空间。
A. 基本类型B. 引用型C. 指针型D. 常值引用型4. 输出一个二维数组b[m][n]中所有元素值的时间复杂度为( D )。
A. O(n)B. O(m+n)C. O(n2)D. O(m*n)5. 某算法仅含程序段1和程序段2,程序段1的执行次数3n2,程序段2的执行次数为0.01n3,则该算法的时间复杂度为( C )。
A. O(n)B. O(n2)C. O(n3)D. O(1)6. 多维数组实际上是由嵌套的( A )实现的。
A. 一维数组B. 多项式C. 三元组表D. 简单变量7. 在一个长度为n的顺序表中删除第i个元素(0≤i≤n-1)时,需要从前向后依次前移( C )个元素。
A. n-iB. n-i+1C. n-i-1D. i8. 在一个长度为n的顺序表的任一位置插入一个新元素的渐进时间复杂度为( A )。
A. O(n)B. O(n/2)C. O(1)D. O(n2)9. 设有一个n´n的对称矩阵A,将其上三角部分按行存放在一个一维数组B中,A[0][0]存放于B[0]中,那么第i行的对角元素A存放于B中( C )处。
A. (i+3)*i/2B. (i+1)*i/2C. (2n-i+1)*i/2D. (2n-i-1)*i/210. 不带头结点的单链表first为空的判定条件是( A )。
电大《数据结构》2020-2021期末试题及答案一、单项选择题1. 一个数组元素a 与( A )的表示等价。
A. *(a+i)B. a+iC. *a+iD. &a+I2.执行下面程序段时,执行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)/23. 当一个作为实际传递的对象占用的存储空间较大并可能被修改时,应最好说明为( B ),以节省参数值的传输时间和存储参数的空间。
A. 基本类型B. 引用型C. 指针型D. 常值引用型4. 输出一个二维数组b[m][n]中所有元素值的时间复杂度为( D )。
A. O(n)B. O(m+n)C. O(n2)D. O(m*n)5. 某算法仅含程序段1和程序段2,程序段1的执行次数3n2,程序段2的执行次数为0.01n3,则该算法的时间复杂度为( C )。
A. O(n)B. O(n2)C. O(n3)D. O(1)6. 多维数组实际上是由嵌套的( A )实现的。
A. 一维数组B. 多项式C. 三元组表D. 简单变量7. 在一个长度为n的顺序表中删除第i个元素(0≤i≤n-1)时,需要从前向后依次前移( C )个元素。
A. n-iB. n-i+1C. n-i-1D. i8. 在一个长度为n的顺序表的任一位置插入一个新元素的渐进时间复杂度为( A )。
A. O(n)B. O(n/2)C. O(1)D. O(n2)9. 设有一个n´n的对称矩阵A,将其上三角部分按行存放在一个一维数组B中,A[0][0]存放于B[0]中,那么第i行的对角元素A存放于B中( C )处。
A. (i+3)*i/2B. (i+1)*i/2C. (2n-i+1)*i/2D. (2n-i-1)*i/210. 不带头结点的单链表first为空的判定条件是( A )。
A. first == NULL;B. first->link == NULL;C. first->link == first;D. first != NULL;11. 设单链表中结点的结构为(data, link)。
已知指针p所指结点不是尾结点,若在*p之后插入结点*s,则应执行的操作是( D )。
A.s->link=p; p->link=s;B. p->link=s; s->link=p;C.s->link=p->link; p=s;D. s->link=p->link; p->link=s;12. 设单循环链表中结点的结构为(data, link),且rear是指向非空的带表头结点的单循环链表的尾结点的指针。
若想删除链表第一个结点,则应执行的操作是( D )。
A.s = rear; rear = rear->link; delete s;B.rear = rear->link; delete rear;C.rear = rear->link->link; delete rear;D.s = rear->link->link; rear->link->link = s->link; delete s;二、填空题1. 数据结构包括逻辑结构、(存储结构)和数据的运算三个方面。
2. 基本数据类型是计算机已经实现了的(数据结构)。
3. 面向对象的特征应包括对象、类、(继承)、消息通信。
4. 模板类是一种数据抽象,它把(数据类型)当作参数,可以实现类的复用。
5. 在程序运行过程中不能扩充的数组是(静态)分配的数组。
这种数组在声明它时必须指定它的大小。
6. 若设一个n´n的矩阵A的开始存储地址LOC(0, 0) 及元素所占存储单元数d已知,按行存储时其任意一个矩阵元素a[j]的存储地址为(LOC(0,0)+(i*n+j)*d)。
7. 将一个n阶对称矩阵A的上三角部分按行压缩存放于一个一维数组B中,A[0][0]存放于B[0]中,则A[I][J]在I≤J时将存放于数组B的(2n-I-1)*I/2+J)位置。
8. 若设串S = “documentHash.doc\0”,则该字符串S的长度为(16)。
9. 在链表中进行插入和(删除)操作的效率比在顺序存储结构中进行相同操作的效率高。
10. 单链表中逻辑上相邻的结点而在物理位置上(不一定)相邻。
11. 若设L是指向带表头的单链表, 语句 L->link=L->link->link的作用是(删除)单链表中的第一个结点。
三、判断题(对/错)1. 算法和程序原则上没有区别,在讨论数据结构时二者是通用的。
错2. 只有用面向对象的计算机语言才能描述数据结构算法。
错3. 数组是一种静态的存储空间分配,就是说,在程序设计时必须预先定义数组的数据类型和存储空间大小,由编译程序在编译时进行分配。
错4. 顺序表和一维数组一样,都可以按下标随机(或直接)访问。
对5. 用字符数组存储长度为n的字符串,数组长度至少为n+1。
对6. 在线性链表中删除中间的结点时,只需将被删结点释放。
错7. 链式栈与顺序栈相比, 一个明显的优点是通常不会出现栈满的情况。
对8. 在使用后缀表示实现计算器类时用到一个栈的实例, 它的作用是暂存运算器对象。
对四、运算题1. 对于一个n´n的矩阵A的任意矩阵元素a[j],按行存储时和按列存储时的地址之差是多少。
(设两种存储时的开始存储地址均为LOC(0, 0),元素所占存储单元数均为d)按行存储时与按列存储时,计算A[j]地址的公式分别为LOC( i, j ) = LOC(0, 0) + ( i*n + j ) * d及LOC’( i, j ) = LOC(0, 0) + ( j*n + i) * d两者相减,得LOC(i,j) –LOC’(i,j) = LOC(0,0)+(i*n+j)*d–LOC(0,0)–(j*n+i)*d=(i-j)*(n-1)*d2. 设有一个10´10的矩阵A,将其下三角部分按行存放在一个一维数组B中,A[0][0]存放于B[0]中,那么A[8][5]存放于B中什么位置。
根据题意,矩阵A中当元素下标I与J满足I≥J时,任意元素A[I][J]在一维数组B中的存放位置为I * (I + 1) / 2 + J,因此,A[8][5]在数组B中位置为8 * (8 + 1) / 2 + 5 = 41。
3. 设有一个二维数组A[11][6],按行存放于一个连续的存储空间中,A[0][0]的存储地址是1000,每个数组元素占4个存储字,则A[8][4]的地址在什么地方。
对于二维数组,若第一、第二维的元素个数为m和n,每个元素所占存储字数为d,首地址为LOC(0, 0),则对于任一数组元素A[j],它的存储地址为:LOC(i, j) = LOC(0, 0) + (i * n + j) * d根据题意,LOC(8, 4) = LOC(0, 0) + (8 * 6 + 4) * 4 = 1000 + 52 * 4 = 1208。
4. 假定一棵二叉树的广义表表示为A(B(,D(G)),C(E,F)),分别写出对它进行前序、中序、按层遍历的结果。
前序:A,B,D,G,C,E,F中序:B,G,D,A,E,C,F按层:A,B,C,D,E,F,G5. 已知一棵二叉树的中序和后序序列如下,求该二叉树的前序序列。
中根序列:c,b,d,e,a,g,i,h,j,f后根序列:c,e,d,b,i,j,h,g,f,a先根序列:a,b,c,d,e,f,g,h,i,j五、算法分析题1. 指出算法的功能并求出其时间复杂度。
void matrimult ( int a[M][N], int b[N][L], int c[M][L] ){ //M、N、L均为全局整型常量int i, j, k;for ( i = 0; i < M; i++ )for ( j = 0; j < L; j++ ) c[j] = 0;for ( i = 0; i < M; i++ )for ( j = 0; j < L; j++ )for ( k = 0; k < N; k++ )c[j] += a[k] * b[k][j];}功能为:矩阵相乘,即a[M][N]×b[N][L]→c[M][L]。
时间复杂性为:O(M×N×L)。
2. 设字符串String具有下列操作:int Length ( ) const; //计算字符串的长度char getData ( k ); //提取字符串第k个字符的值若字符串Tar的值为“a b a b c a b c a c b a b”,Pat的值为“a b c a c”时,给出算法执行后函数返回的结果。
#i nclude “String.h”int unknown ( String& Tar, String& Pat ) const {for ( int i = 0; i <= Tar.Length( ) – Pat.Length( ); i++ ) {int j = 0;while ( j < Pat.Length( ) )if ( Tar.getData (i+j) == Pat.getData (j) ) j++;else break;if ( j == Pat.Length( ) ) return i;}return -1;}算法执行的结果是:函数返回值等于5。
该算法即字符串的模式匹配。
3. 设单链表结点的结构为LNode=(data,link),阅读下面的函数,指出它所实现的功能。
int AA(LNode *Ha){ //Ha为指向带表头附加结点的单链表的表头指针int n=0;LNode *p=Ha->link;while(p) {n++;p=p->link;}return(n);}算法功能:计算单链表的长度或计算单链表中结点的个数。
4. 写出下列程序段的输出结果:void main(){stack S;char x,y;S.InitStack( );x="c";y="k";S.Push(x); S.Push("a"); S.Push(y);S.Pop(S,x); S.Push("t"); S.Push("s");while(!S.IsEmpty( )) { S.Pop(y); cout<cout<<Y<}//main运行结果:stack六、算法设计题1. 设有两个整数类型的顺序表A(有 m个元素)和B(有n个元素),其元素均以升序排列。