2019年数据结构期末考试题及答案
数据结构考试题及答案

数据结构考试题及答案一、选择题(每题2分,共20分)1. 以下哪个不是线性数据结构?A. 数组B. 链表C. 树D. 图2. 在一个单链表中,删除一个节点的操作需要知道该节点的:A. 地址B. 值C. 索引D. 前驱节点的引用3. 栈(Stack)是一种:A. 线性表B. 树状结构C. 图结构D. 散列表4. 哈希表解决冲突最常用的方法是:A. 排序B. 链地址法C. 再散列D. 除留余数法5. 以下哪个排序算法是稳定的?A. 快速排序B. 冒泡排序C. 选择排序D. 堆排序二、简答题(每题10分,共30分)1. 简述数组和链表的区别。
2. 解释二叉搜索树的基本概念及其优势。
3. 什么是递归?请给出一个简单的递归算法例子。
三、计算题(每题25分,共50分)1. 给定一个无序数组,请写出一个时间复杂度为O(n log n)的排序算法,并说明其工作原理。
2. 描述如何使用队列来实现一个简单的文本编辑器的撤销和重做功能。
四、编程题(共30分)编写一个函数,该函数接受一个整数数组作为参数,返回数组中所有元素的和。
如果数组为空,返回0。
答案一、选择题1. 答案:C(树和图都是非线性结构)2. 答案:D(需要前驱节点的引用来删除节点)3. 答案:A(栈是一种后进先出的特殊线性表)4. 答案:B(链地址法是解决哈希冲突的常用方法)5. 答案:B(冒泡排序是稳定的排序算法)二、简答题1. 数组和链表的区别:- 数组是连续的内存空间,链表是非连续的。
- 数组的索引访问速度快,链表需要遍历。
- 数组的大小固定,链表动态可变。
2. 二叉搜索树的基本概念及其优势:- 二叉搜索树是一种特殊的二叉树,左子树上所有节点的值小于它的根节点的值,右子树上所有节点的值大于它的根节点的值。
- 优势:支持快速的查找、插入和删除操作。
3. 递归是函数自己调用自己的过程。
例如,计算n的阶乘的递归算法: ```cint factorial(int n) {if (n <= 1) return 1;return n * factorial(n - 1);}```三、计算题1. 快速排序算法:- 选择一个元素作为“基准”(pivot)。
《数据结构》期末考试试题及答案

《数据结构》期末考试试题及答案一、单项选择题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、逻辑上通常可以将数据结构分为( )A.初等结构和组合结构B.顺序结构和链式结构C.线性结构和非线性结构D.动态结构和静态结构正确答案:C2、如果在数据结构中每个数据元素只可能有一个直接前驱,但可以有多个直接后继,则该结构是()。
A.栈B. 队列C.图D.树正确答案:D3、在长度为n的顺序表的第i个位置上插入一个元素(1<=i<=n+1),元素的移动次数为:()A.n-iB.i-1C.n-i+1D.i正确答案:C4、在非空线性链表中由p所指结点的后面插入一个由q所指的结点,应依次执行()A.q->next=p;p->next=q;B.p->next=q;q->next=p;C.q->next=p->next;p->next=q;D.q->next=p->next;p=q;正确答案:C5、已知栈的最大容量为4。
若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为()A.2,3,5,6,1,4B.1,4,6,5,2,3C.5,4,3,2,1,6D.3,2,5,4,1,6正确答案:D6、设栈S和队列Q初始均为空,若6个元素入栈的顺序为1、2、3、4、5、6,一个元素出栈以后立即入队列Q,若6个元素出队的顺序为2、4、3、6、5、1,则栈S的容量至少为()A.3B.5C.4D.2正确答案:A7、在计算机内实现递归算法时所需的辅助数据结构是()A.队列B.栈C.图D.树正确答案:B8、循环队列存储在数组A[0..m-1],则出队时的操作为()A.front=(front mod m)+1B.ront=(front+1)mod mC.front=front+1D.front=(front+1)mod (m-1)正确答案:B9、若以S和X分别表示进栈和退栈操作,则对初始状态为空的栈可以进行的栈操作系列合法的是()A.SXXSXSSXB.SSSXXSXXC.SXSSXXXXD.SXSXXSSX正确答案:B10、在具有m个单元的循环队列中,队头指针为front,队尾指针为rear,则队满的条件是()A.(front+1)%m==rearB.(rear+1)%m==frontC.front==rearD.rear+1==front正确答案:B11、在表长为n的顺序表上做插入运算,平均要移动的结点数为()A.n/4B.nC.n/3D.n/2正确答案:D12、元素的进栈次序为A,B,C,D,E,则退栈中不可能的序列是()A.E,D,C,B,AB.A,B,C,D,EC.E,A,B,C,DD.B,C,D,E,A正确答案:C13、下述二叉树中,()满足性质:从任一结点出发到根的路径上所经过的结点序列按其关键字有序。
2019最新数据结构试题及答案(10套)

2018最新十套数据结构试题及答案汇编2018数据结构试题(一) (1)2018数据结构试题(二) (5)2018数据结构试题(三) (8)2018数据结构试题(四) (11)2018数据结构试题(五) (15)2018数据结构试题(六) (19)2018数据结构试题(七) (22)2018数据结构试题(八) (25)2018数据结构试题(九) (28)2018数据结构试题(十) (32)2018数据结构试题(一)答案 (35)2018数据结构试题(二)答案 (37)2018数据结构试题(三)答案 (39)2018数据结构试题(四)答案 (42)2018数据结构试题(五)答案 (45)2018数据结构试题(六)答案 (47)2018数据结构试题(七)答案 (50)2018数据结构试题(八)答案 (52)2018数据结构试题(九)答案 (54)2018数据结构试题(十)答案 (56)数据结构试题(一)一、单选题(每题2 分,共20分)1.栈和队列的共同特点是( )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
A.688 B.678 C.692 D.6965.树最适合用来表示( )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O(1)B. O(n)(1og2n) D. O(n2)9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
数据结构期末考试2019年

数据结构期末考试(2019 年春)一、单选题 (题数:35,共 70.0 分)1 两个字符串相等的条件是( )。
(2.0 分) A、两串的长度相等 B、两串包含的字符相同 C、两串的长度相等,并且两串包含的字符相同 D、两串的长度相等,并且对应位置上的字符相同我的答案:D2 循环队列存储在数组 A[0..m]中,则入队时的操作为( )。
(2.0 分) A、rear=rear+1 B、rear=(rear+1)%(m-1) C、rear=(rear+1)%m D、rear=(rear+1)%(m+1)我的答案:C3 广义表 A=((x,(a,B)),(x,(a,B),y)),则运算 head(head(tail(A)))的结果为( )。
(2.0 分) A、x B、(a,B) C、(x,(a,B)) D、A我的答案:C4 在具有 n 个单元的顺序存储的循环队列中,假定 front 和 rear 分别为队头指针和队尾指针,则判断队满的条件为________。
(2.0 分) A、rear%n= = front B、(front+l)%n= = rear C、rear%n -1= = front D、(rear+l)%n= = front我的答案:C5 通常对数组进行的两种基本操作是( )。
(2.0 分) A、建立与删除 B、索引和修改 C、查找和修改 D、查找与索引我的答案:C6 数组就是矩阵,矩阵就是数组,这种说法( )。
(2.0 分) A、正确 B、错误 C、前句对,后句错 D、后句对我的答案:B7 向一个栈顶指针为 hs 的链栈中插入一个 s 结点时,应执行______。
(2.0 分) A、hs->next=s; B、s->next=hs; hs=s; C、s->next=hs->next;hs->next=s; D、s->next=hs; hs=hs->next;我的答案:C8 在双向循环链表中,在 p 所指的结点之后插入 s 指针所指的结点,其操作是____。
(完整word版)数据结构C语言版期末考试试题(有答案)

“数据结构”期末考试试题一、单选题(每小题2分,共12分)1.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。
A. HL=ps p一>next=HLB. p一>next=HL;HL=p3C. p一>next=Hl;p=HL;D. p一>next=HL一>next;HL一>next=p;2.n个顶点的强连通图中至少含有( )。
A.n—l条有向边B.n条有向边C.n(n—1)/2条有向边D.n(n一1)条有向边3.从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( )。
A.O(1)B.O(n)C.O(1Ogzn)D.O(n2)4.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )。
A.24 B.48C. 72 D. 535.当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。
A.整形B.引用型C.指针型D.常值引用型·6.向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为( )。
A.O(n) B.O(1)C.O(n2) D.O(10g2n)二、填空题(每空1分,共28分)1.数据的存储结构被分为——、——、——和——四种。
2.在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为——域和——域。
3.——中缀表达式 3十x*(2.4/5—6)所对应的后缀表达式为————。
4.在一棵高度为h的3叉树中,最多含有——结点。
5.假定一棵二叉树的结点数为18,则它的最小深度为——,最大深度为——· 6.在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定——该结点的值,右子树上所有结点的值一定——该结点的值。
7.当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层——调整,直到被调整到——位置为止。
数据结构期末考试试题及答案

数据结构期末考试试题及答案一、选择题1. 在数据结构中,以下哪种数据结构是“先进先出”(FIFO)的?A. 栈B. 队列C. 链表D. 堆答案:B2. 哪种数据结构具有类似现实生活中“洋葱”的结构?A. 链表B. 树C. 图D. 堆答案:B3. 在常见的排序算法中,以下哪个算法具有最好的时间复杂度?A. 快速排序B. 插入排序C. 冒泡排序D. 选择排序答案:A4. 以下哪个数据结构可以解决“最短路径”问题?A. 队列B. 链表C. 树D. 图答案:D5. 在二叉搜索树中,节点的左子树的值都小于节点的值,右子树的值都大于节点的值。
这种特点被称为:A. 平衡性B. 完全性C. 左倾性D. 有序性答案:D二、填空题1. 在栈的操作中,插入元素的操作被称为______。
答案:push2. 哈希表通过______的方式快速查找元素。
答案:散列3. 在链表中,指向链表头部的指针被称为______。
答案:头指针4. 在图的遍历算法中,使用队列的遍历方式被称为______。
答案:广度优先搜索5. 大O表示法中,表示最坏情况下时间复杂度的记号是______。
答案:O三、简答题1. 请简要说明栈和队列的特点及应用场景。
答:栈是一种先进后出(FILO)的数据结构,只能在栈顶进行插入和删除操作。
栈的应用场景包括函数调用、表达式求值、撤销操作等。
队列是一种先进先出(FIFO)的数据结构,只能在队尾插入元素,在队头删除元素。
队列的应用场景包括多线程任务调度、消息队列等。
2. 简要描述堆排序的思想和步骤。
答:堆排序是一种基于二叉堆的排序算法。
首先,将待排序序列构建成一个大顶堆;然后,将堆顶元素与最后一个元素交换,即将最大元素放到已排序部分的末尾;接着,重新调整堆,将剩余元素重新构建成大顶堆;重复以上步骤,直到所有元素排序完成。
四、编程题请使用C语言实现一个二叉树的前序遍历算法。
```c#include <stdio.h>#include <stdlib.h>struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;};void preorderTraversal(struct TreeNode* root) {if (root != NULL) {printf("%d ", root->val); // 先访问根节点preorderTraversal(root->left); // 再遍历左子树preorderTraversal(root->right); // 最后遍历右子树}}int main() {// 构建二叉树struct TreeNode* root = (struct TreeNode*)malloc(sizeof(struct TreeNode));struct TreeNode* node1 = (struct TreeNode*)malloc(sizeof(struct TreeNode));struct TreeNode* node2 = (struct TreeNode*)malloc(sizeof(struct TreeNode));root->val = 1;node1->val = 2;node2->val = 3;root->left = node1;root->right = node2;node1->left = NULL;node1->right = NULL;node2->left = NULL;node2->right = NULL;// 调用前序遍历函数preorderTraversal(root);return 0;}```本文介绍了数据结构期末考试的试题及答案,涵盖了选择题、填空题、简答题和编程题等不同题型。
数据结构期末复习习题(含答案)

第一章习题一、求下列程序段的时间复杂度。
1.x=0;for(i=1;i<n;i++)for(j=i+1;j<=n;j++)x++;2.x=0;for(i=1;i<n;i++)for(j=1;j<=n-i;j++)x++;3.int i,j,k;for(i=0;i<n;i++)for(j=0;j<=n;j++){ c[i][j]=0;for(k=0;k<n;k++)c[i][j]=a[i][k]*b[k][j]}4.i=n-1;while((i>=0)&&A[i]!=k))j--;return (i);5.fact(n){ if(n<=1)return (1);elsereturn (n*fact(n-1));}二、写一个算法,返回一个数组中所有元素被第一个元素除的结果一、O(2n) 2. O(2n) 3. O(n3) 4. O(n) 5. O(n)二、void DivArray(int * pArray ,int size){if (size <= 0) return ;if (pArray[0] == 0) return;for (int i=size-1;i>=0;i--){pArray[i] /=pArray[0];}}线性表习题一、单项选择题1.线性表是________。
A.一个有限序列,可以为空B.一个有限序列,不可以为空C.一个无限序列,可以为空D.一个无限序列,不可以为空2.在一个长度为n的顺序表中删除第i个元素(0<=i<=n)时,需向前移动个元素。
A.n-i B.n-i+l C.n-i-1 D.i3. 线性表采用链式存储时,其地址________。
A.必须是连续的B.一定是不连续的C.部分地址必须是连续的D.连续与否均可以4.从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较________个元素结点。
2018-2019学年第二学期《数据结构》期末考试

2018-2019学年第二学期《数据结构》期末考试适用班级:1801、1802、1803、18041、在下列选项中,哪个不是一个算法一般应该具有的基本特征()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.二叉树是线性结构11、线性表L=(a1,a2,a3,…ai,……an),下列说法正确的是A.每个元素都有一个直接前件和直接后件B.线性表中至少要有一个元素C.表中诸元素的排列顺序必须是由小到大或由大到小D.除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件12、以下数据结构属于非线性数据结构的是A.队列B.线性表C.二叉树D.栈13、在_____中,只要指出表中任何一个结点的位置,就可以从它出发依次访问到表中其他所有结点。
大学数据结构期末考试试题(有答案)

“数据结构”期末考试试题一、单选题(每小题2分,共12分)1.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。
A. HL=ps p一>next=HLB. p一>next=HL;HL=p3C. p一>next=Hl;p=HL;D. p一〉next=HL一>next;HL一〉next=p;2.n个顶点的强连通图中至少含有( ).A。
n—l条有向边 B.n条有向边C.n(n—1)/2条有向边 D。
n(n一1)条有向边3。
从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( )。
A。
O(1) B。
O(n)C.O(1Ogzn)D.O(n2)4.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为()。
A.24 B.48C. 72 D. 535.当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。
A.整形B.引用型C.指针型D.常值引用型·6.向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为( )。
A.O(n) B.O(1)C.O(n2) D.O(10g2n)二、填空题(每空1分,共28分)1.数据的存储结构被分为——、——、-—和—-四种。
2.在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为——域和——域。
3.-—中缀表达式 3十x*(2。
4/5—6)所对应的后缀表达式为———-。
4.在一棵高度为h的3叉树中,最多含有——结点。
5.假定一棵二叉树的结点数为18,则它的最小深度为—-,最大深度为-—·6.在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定——该结点的值,右子树上所有结点的值一定-—该结点的值。
7.当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层—-调整,直到被调整到——位置为止.8.表示图的三种存储结构为——、——和-——.9.对用邻接矩阵表示的具有n个顶点和e条边的图进行任一种遍历时,其时间复杂度为-—,对用邻接表表示的图进行任一种遍历时,其时间复杂度为—-。
2019年电大本科数据结构期末考试题库及答案

数据结构(本)期末题库及答案一、单项选择题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= =NULLC.head->next= =head D.head!=NULL7 .设顺序存储的线性表长度为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 )时,移动元素的次数为3 A.3 B.n/2 C.n-3 D.411.以下说法正确的是( C )。
数据结构期末考试试卷试题包括答案

数据结构期末考试试题及答案一、选择题评价一个算法时间性能的主要标准是()。
1.A、算法易于调试B、算法易于理解C、算法的稳定性和正确性D、算法的时间复杂度〔〕等五个特性。
计算机算法具备有输入、输出、 2.A、可行性、可移植性和可扩充性B、可行性、确定性和有穷性C、确定性、有穷性和稳定性D、xx、稳定性和 xx。
带头结点的单链表head 为空的判定条件是〔〕 3.A、head==NULLB、head->next==NULLC、head->next==headD、head!=NULL以下关于线性表的说法不正确的选项是()。
4.A、线性表中的数据元素可以是数字、字符、记录等不同类型。
B、线性表中包含的数据元素个数不是任意的。
C、线性表中的每个结点都有且只有一个直接前趋和直接后继。
D、存在这样的线性表:表中各结点都没有直接前趋和直接后继。
在顺序表中,只要知道(),就可在相同时间内求出任一结点的存储地址。
、基地址B、结点大小C、向量大小D、基地址和结点大小()运算中,使用顺序表比链表好。
6.A、插入B、删除C、根据序号查找D、根据元素值查找一个长度为 n 的顺序表中,向第 i 个元素之前插入一个新元素时,需要向后移动〔〕个元素、n-iB、n-i+1C、n-i-1D、i()适合作为经常在首尾两端操作线性表的存储结构。
8.A、顺序表B、单链表C、循环链表D、双向链表栈和队列的共同点是〔〕9.A、都是先进后出B、都是先进先出C、只允许在端点处插入和删除元素D、没有共同点一个队列的入列序列是1234,那么队列的输出序列是()。
10.A、4321B、12 3 4C、1432D、3241队列与一般的线性表的区别在于()。
11.A、数据元素的类型不同B、运算是否受限制C、数据元素的个数不同D、逻辑结构不同“假上溢〞现象会出现在 ()中。
12.A、循环队列B、队列C、链队列、顺序队列 D.二、填空.数据的逻辑结构被分集合、线性结构、树形结构和图结构.数据的逻辑结构被分为集合、线性结构、树形结构和图状结构.下面程序段的时间复杂度i=s=0whil(s<ni++s++;.树型结构和图形结构合称是非线性结构.在长度的顺序存储线性表的个元素〔 1≤i ≤n〕之前插入一个元素时需要向后移 n-i+个元素.在一个长度的顺序存储的线性表中,删除个元素〔 1≤i ≤n〕时需要向前移n-个元素.指指向非空循环单链hea 的尾结点,满 p->next=hea.已是带头结点的非空单链表,结点既不是第一个数据结点,也不是最后一个结点,的答案中选择适宜的语句序列,实现删结点的直接后继结点的语句序列 P->nexP->nex->nextP=P->next->nextwhil(P->next!=QP=P->nextwhil(P->next->next=QP=P->nextQ=PQ=P->nextP=L⑧L=L->next;⑨free(Q);9.在线性结构中,第一个结点无前驱结点,其余每个结点有且只有 1 个前驱结点。
电大1252《数据结构(本)(b)》开放大学期末考试试题2019年7月(含答案)

)号元素。(矩
阵中的第 1 个元素是 a1.1)
A. 42
B. 39
C. 38
D. 40
7. 一棵采用链式存储的二叉树中,共有 n-1 个指针域被有效使用(即指针域为非空)。
该二叉树中有(
)个指针域为空。
A. n+l
B. n
C. n-1
D. n-2
8. 设一棵哈夫曼树共有 n 个非叶结点,则该树共有(
C. 对链表进行插入、删除元素的操作一定要移动结点
D. 在链表中可以随机访间任一结点
2. 线性表在存储后,如果要求:仅通过已知的指向第 1 个结点的指针,进行相关操作,访问
到该结点的前驱结点,则采用(
)存储方式是不可行的。
A. 单链表
B. 双链表
C. 单循环链表
D. 顺序表
3. 栈和队列的共同特点是(
NODE temp;
for(i=l ;i<= (1)
;i++)
585
提醒:电大资源网已将该科目2010年到2020年1月的期末试题
整合、汇总、去重复、按字母排版,形成题库,方便大家复习
k=i;
for(j=i+l ;j<= ill_
if(a[j]. key<a[k]. key) (3)
ifCi! =k)
(2) 求树的带权路径长度。
584
提醒:电大资源网已将该科目2010年到2020年1月的期末试题
整合、汇总、去重复、按字母排版,形成题库,方便大家复习
24. 如下的一棵二叉棵树,
(1) 请给出前序遍历序列?请给出中序遍历序列? (2) 把 1,2,3,4,5,6,7,8,9 填人,使它成为一棵二叉排序树。 提示:设图中的树是二叉排序树,则中序遍历序列是有序的,从而找出中序遍历序列与 1, 2' … 9 的对应关系。 (3) 在图中给出在二叉排序树中插入结点 2.5 的结果。
数据结构试题及答案(十套)

数据结构试题及答案(十套)数据结构试题及答案(十套)一、选择题1. 数据结构是指()。
A. 存储数据的方式B. 数据的逻辑结构和物理结构C. 数据的存储结构和存储方式D. 数据的逻辑结构、存储结构和存储方式答案:D2. 在数据结构中,线性表的存储方式包括()。
A. 顺序存储和链式存储B. 数组存储和链表存储C. 顺序存储、链表存储和索引存储D. 顺序存储、链表存储和树形存储答案:A3. 栈是一种()的数据结构。
A. 先进先出B. 先进后出C. 后进先出D. 后进后出答案:C4. 队列是一种()的数据结构。
A. 先进先出B. 先进后出C. 后进先出D. 后进后出答案:A5. 二叉树中,度为0的节点称为()。
A. 叶子节点B. 根节点C. 中间节点D. 子节点答案:A6. 以下哪个排序算法是稳定的?A. 快速排序B. 选择排序C. 插入排序D. 希尔排序答案:C7. 图中表示顶点之间关系的边的数量称为()。
A. 顶点度数B. 边数C. 路径数D. 网络答案:B8. 哈希表通过()来实现高效的查找操作。
A. 散列函数B. 排序算法C. 遍历操作D. 顺序存储答案:A9. 平衡二叉树是一种具有左右子树高度差不超过()的二叉树。
A. 0B. 1C. 2D. 3答案:B10. 在链表中,删除节点的操作时间复杂度是()。
A. O(1)B. O(logn)C. O(n)D. O(nlogn)答案:A二、填空题1. 在顺序存储结构中,元素之间的逻辑关系由()表示。
答案:下标2. 二叉查找树的中序遍历结果是一个()序列。
答案:递增3. 哈希表通过散列函数将关键字映射到()上。
答案:地址4. 图的邻接表中,每个顶点的所有邻接点链接成一个()。
答案:链表5. 位运算符中的左移和右移运算都是对二进制数进行()操作。
答案:移位三、解答题1. 简要介绍顺序存储和链式存储这两种线性表的存储方式,并比较它们的优缺点。
答案:顺序存储是将元素按照逻辑顺序依次存储在一块连续的存储空间中,通过元素的下标可以直接访问到元素。
《数据结构(本)(本科必修)》2019期末试题及答案

《数据结构(本科)》2019期末试题及答案
一、单项选择题(每小题2分。
共30分)
1.链表所具备的特点是( )。
A.可以随机访问任一结点
B.占用连续的存储空间
C.插入删除元素的操作不需要移动元素结点
D.可以通过下标对链表进行直接访问
2.线性结构中数据元素的位置之间存在( )的关系。
A.一对一
B.一对多
C.多对多
D。
每一个元素都有一个直接前驱和一个直接后继
3.算法的时间复杂度与( )有关。
7
A.所使用的计算机 B.与计算机的操作系统
C.与算法本身 D.与数据结构
4.在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是P所指结点的直接后继,现要删除q所指结点,可用的语句是( )。
A.p=q->next B.p->next=q
C.p->next=q->next D.q->next=NULL
5.在一个链队中,假设f和r分别为队头和队尾指针,则删除一个结点的运算为( )。
A.r=f->next:
B.r=r->next:
C.f=f一>next;
D.f=r一>next:
6.元素3,6,9按顺序依次进栈,则该栈的不可能输出序列是( )(进栈出栈可以交替进行)。
A.9,6,3
B.9,3,6。
《数据结构》期末考试复习题及参考答案

数据结构复习题(课程代码 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._____拓朴排序______可以判断出一个有向图中是否有环。
2019年数据结构期末考试题及答案

2012年数据结构期末考试题及答案一、选择题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 v n; i + + )for (j = 0; j v n; j + + )s+ = B[i][j];sum= s;9. 下面程序段的时间复杂度是O(n*m)。
for (i = 0; i v n; i+ + )for (j = 0; j v m; j+ + )A[i][j] = 0;10. 下面程序段的时间复杂度是O( log3n)。
i = 0;while (i v= n)i = i * 3 ;11. 在以下的叙述中,正确的是B。
华中科技大学数据结构2019年期末试卷

得 分《数据结构》考试题(闭卷) A 卷2019年5月)题 号 一 二 三 总分 题 分 40 40 40 120得 分一、 简答题 (8小题,每题5分,共40分)1.下面一段代码的时间复杂度是()for( i = 0; i < N; i ++){for(j = N*N; j > i; j--){for(k = 0; k < N; k = 2*k)A += B} }(A )O(N 2)(B )O(N 3) (C )O(N 4)(D )O(log 2(N)*N 3)(E )O(log 2(N)*N 2)答案:(D )2.设num[ col ]存放稀疏矩阵三元组M 中第col 列中非0元素个数,cpos[ col ]存放M 中第col 列的第一个非0元素在转置后三元组中的位置。
写出下列三元组中num[ col ]和cpos[ col ]的值。
答案: col 1 2 3 4 5 6 num[ col ] 1 2 1 3 1 0 cpos[ col ]124589i j v 4 6 8 1 2 2 1 4 3 2 2 -12 4 3 3 3 4 3 4 5 3 5 -24 173. 已知KMP算法的模式串以1开头,由0,1构成,NEXT 函数为01112345678,请写出模式串。
答案:10010010011(或10010010010)4. 已知8个结点1,2,3,4,5,6,7,8构成的二叉树,其先序、中序、后序序列分别如下,其中有一些模糊不清,请画出该二叉树。
先序: _ 2 3 _ 5 _ 1 8中序: 3 _ 4 7 _ _ 1 8后序: _ 4 2 _ _ 1 5 7答案:5. 给定下面的广义表A=(a,b,c), B=((a,c),(b,c,d)), C=(a,C,d), D=(A,B,(a,c)),分别给出4个广义表的表头和表尾以及广义表的长度。
答案:A=(a,b,c) 表头:a,表尾:(b, c),表长=3B=((a,c),(b,c,d)) 表头:(a,c),表尾:((b, c, d)),表长=2C=(a,C,d), 表头:a,表尾:(C, d),表长=3D=(A,B,(a,c)) 表头:A,表尾:(B, (a, c)), 表长=36. 假设一个有序表中有23个元素,现进行折半查找,则平均查找长度是多少?答案:应当用穷举法罗列:全部元素的查找次数为=(1+2×2+4×3+8×4+8×5)=89;ASL=89/23=3.877. 已知一有向无环图如下,请给出其所有的拓扑排序序列。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2012年数据结构期末考试题及答案一、选择题1.在数据结构中,从逻辑上可以把数据结构分为CA.动态结构和静态结构B•紧凑结构和非紧凑结构C .线性结构和非线性结构 D.内部结构和外部结构2.数据结构在计算机内存中的表示是指 A oA .数据的存储结构 B.数据结构C •数据的逻辑结构D •数据元素之间的关系3.在数据结构中,与所使用的计算机无关的是数据的A结构。
A •逻辑B •存储 C.逻辑和存储 D •物理4・在存储数据时,通常不仅要存储各数据元素的值,而J1还要存储 C oA.数据的处理方法B.数据元素的类型C •数据元素之间的关系D •数据的存储方法5.在决定选取何种存储结构时,一般不考虑A •各结点的值如何B •结点个数的多少C•对数据有哪些运算D•所用的编程语言实现这种结构是否方便。
6.以下说法正确的是D o・数据项是数据的基本单位•数据元素是数据的最小单位・数据结构是带结构的数据项的集合・一些表面上很不相同的数据可以有相同的逻辑结构7.算法分析的目的是C ,算法分析的两个主要方面是A(1) A •找出数据结构的合理性B•研究算法中的输入和输出的关系C•分析算法的效率以求改进 C.分析算法的易读性和文档性(2) A .空间复朵度和时间复朵度 B •正确性和简明性D•数据复朵性和程序复朵性8.下面程序段的时间复朵度是0( n2)s 二0;for(1=0; i V n; i+ + )for ( j= 0; jV n; j++)sum = s :9.下面程序段的时间复朵度是0(n*m)for ( i = 0:i< n ; i + + )for (j - 0;j〈m ; j + + )A[i] [j]= 0;10.下面程序段的时间复杂度是0(log3n)i = 0;while(i<= n)i 二i * 3;11・在以下的叙述中,正确的是 B oA•线性表的顺序存储结构优于链表存储结构B .二维数组是其数据元素为线性表的线性表C•栈的操作方式是先进先出D•队列的操作方式是先进后出12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着B。
A .数据元素具有同一特点B .不仅数据元素所包含的数据项的个数要相同,而1L对应的数据项的类型耍一致C•每个数据元素都一样D•数据元素所包含的数据项的个数要相等13.链表不具备的特点是A。
A .可随机访问任一结点B .插入删除不需要移动元素C .不必事先估计存储空间D .所需空间与其长度成正比14.不带头结点的单链表head为空的判定条件是A。
next == NULLC . head—>next == headD head!= NULL15.带头结点的单链表head为空的判定条件是B。
next == NULLC. head—>next == head D head! = NULL16.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用单链表B •给出表头指针的单循环链表 C.双链表D •带头结点的17・需要分配较大空间,线插入和删除不需耍移动元素的性表,其存储结构是18.非空的循环单链表head 的尾结点(由p 所指向)满足C o在循环双链表的p 所指的结点之前插入s 所指结 D oA. p —> prior —> prior B ・ p —> prior —> priorprior —> next = sprior —> prior = s21・在一个具有n 个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是A ・ 0 ( 1)B ・ 0 ( n)C ・ 0 ( n2)D ・ 0 ( nlog2n)22.在一个长度为n ( n> 1)的单链表上,设有头和尾两个指针,执行 A •删除单链表中的第一个元素 B •删除单链表中的最后一个元素 C .在单链表第一个元素前插入一个新元素 D ・在单链表最后一个元素后插入一个新元素D 存储方式最节省运算时间A.双循环链表A.单链表B •静态链表C •线性链表D •顺序存储结构A ・ p — > next == NULL B. p == NULL C ・ p — >next == headD ・ p == head19.点的操作是20・如果最常用的操作是取第 i 个结点及其前驱,则采用D 存储方式最节省时间。
A ・单链表B ・双链表C ・单循环链表 D.顺序表B 操作与链表的长度有关。
B•可以进行随机访问C•可以省略表头指针或表尾指针D .顺序访问相邻结点更灵活24.如果对线性表的操作只有两种,即删除第一个元素,在最后一个元素的后面插入新元素,则最好使用B A•只有表头指针没有表尾指针的循环单链表B .只有表尾指针没有表头指针的循环单链表C .非循环双链表D•循环双链表25.在长度为n的顺序表的第i个位置上插入一个元素(Ki辛n ),元素的移动次数为:A。
B. n "iC. iD. i T26・对丁•只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为 C oA .顺序表 B.用头指针表示的循环单链表C .用尾指针表示的循环单链表D •单链表27.下述哪一条是顺序存储结构的优点?C oA插入运算方便B可方便地用于各种逻辑结构的存储表示C存储密度大D删除运算方便28・下面关于线性表的叙述中,错误的是哪一个?B oA线性表采用顺序存储, 必须占用一片连续的存储单元B线性表采用顺序存储, 便『•进行插入和删除操作。
C线性表采用链式存储, 不必占用一片连续的存储单元D线性表采用链式存储, 便丁•进行插入和删除操作。
29・线性表是具有n个B的有限序列。
A •字符B・数据元素 C .数据项 D •表元素30.在n个结点的线性表的数组实现中,算法的时间复杂度是0 (1)的操作是A °A・访问第i (1< = i < = n)个结点和求第i个结点的直接前驱(l〈i < = n)B •在第i (1< = i< = n)个结点后插入一个新结点C.删除第i (1〈二i<= n)个结点D・以上都不对31・若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为C。
A ・ 0 ( 0) B・ 0(1) C. 0( n) D. 0( n2)32・对丁•顺序存储的线性表,访问结点和增加、删除结点的时间复朵度为A. 0 (n) 0 (n)B.0 (n) 0 (1)C.0 (1) 0 (n)D. 0 (1) 0 (1) 33•线性表(al, a2, …,an)以链式方式存储,访问第i位置元素的时间复杂度为C。
A. 0 (0) B・ 0 (1) C・ 0 (n) D・ 0 (n2)34.单链表中,增加一个头结点的目的是为了C。
A.使单链表至少有一个结点B•标识表结点中首结点的位置C.方面运算的实现D•说明单链表是线性表的链式存储35.在单链表指针为p的结点之后插入指针为s的结点,正确的操作是B。
A ・ p — >next= p—>next= p—> next=s:C・ p—>next=s—> s— > next; p — > next = s36.线性表的顺序存储结构是一种AA .随机存取的存储结构B •顺序存取的存储结构C .索引存取的存储结构D . Hash存取的存储结构37.栈的特点是B,队列的特点是AA.先进先出B.先进后出3&栈和队列的共同点是CA.都是先进后出B.都是先进先出C .只允许在端点处插入和删除元素 D.没有共同点39. —个栈的进栈序列是a, b, c, d, e,则栈的不可能的输出序列是A・ edcba B・ decba C・ dceab D・ abcde40 •设有一个栈,元素依次进栈的顺序为A、B、C、D. E。
下列C是不可能的出栈序列A. A, B, C, D, EB. B, C, D, E, AC. E, A, B, C, DD.E, D, C, B, A41.以下B不是队列的基本运算?A •从队尾插入一个新元素B •从队列中删除第i个元素A ・iB ・n —i C. n —i +1 D ・不确定43.判定一个顺序栈 st (最多元素为MaxSize )为空的条件是A ・ st —> top !top =——1C ・ st —> top !top = MaxSize 44•判定一个顺序栈st (最多元素为MaxSize )为 满的条件是A ・ st —> top ! top == — 1C ・ st —> top !top = MaxSizeA ・ qu — > rear -qu —> rear -qu —> front —1—MaxSizefront — 1front 与rear 分别表示对头元素和队尾元素的位置则判断循环队列空的条件是A ・ h —> next= h :C ・ s —> next= h —> next=49.输入序列为ABC , 可以变为CBA 时,经过的栈操作为45. —个队列的入队序列是 b 2, 3, 4,则队列的输出序列是A ・ 4, 3, 2, 1 B. 1, 2,3, 4C. 1 , 4,3,2D. 3, 2, 4, 146.判定一个循环队列qu(最多元素为MaxSize )为空的条件是A ・ front=二 rear+ 1B ・ rear== front+ 1C ・ front= rearD. front = 0 48・向一个栈顶指针为 h 的带头结点的链栈中插入指针s 所指的结点时,应执行D 操作。
47.在循环队列中,若Bo50•若栈采用顺序存储方式存储,现两栈共享空间V[1 m], topEll. top[2]分别代表第1和第2个栈的栈顶,栈1的底在V[l],栈2的底在V[m],则栈满的条件是B oA. top[2] —top[l] =0B. topLl] + l=topl2]C. topLl] +top 12] = mD. top[l]=top[2]51.设计一个判别表达式中左、右括号是否配对出现的算法,采用D数据结构最佳。
A.线性表的顺序存储结构B.队列C.线性表的链式存储结构 D .栈52.允许对队列进行的操作有DoA .对队列中的元素排序B•取出最近进队的元素C •在队头元素之前插入元素D •删除队头元素53•对丁•循环队列DA・无法判断队列是否为空 B •无法判断队列是否为满C •队列不可能满 D.以上说法都不对54•若用一个大小为6的数值來实现循环队列,1L当前“ar和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为A. 1 和5B. 2 和4C. 4 和2D. 5 和155•队列的“先进先出”特性是DoA・最早插入队列中的元素总是最后被删除B •当同时进行插入、删除操作时,总是插入操作优先C •每当有删除操作时,总是要先做一次插入操作D •每次从队列中删除的总是最早插入的元素56•和顺序栈相比,链栈有一个比较明显的优势是AA •通常不会出现栈满的情况 B.通常不会出现栈空的情况C •插入操作更容易实现D•删除操作更容易实现57. 用不带头结点的单链表存储队列,其头指针指向队头结点,尾指针指向队尾结点,则在进行出队操作时CA. 8B. 37C. 36D. 9A•仅修改队头指针B•仅修改队尾指针C .队头、队尾指针都可能要修改D .队头、队尾指针都要修改58.若串S二1 software其子串的数目是B。