数据结构测验122答案
- 格式:doc
- 大小:107.00 KB
- 文档页数:9
122-《数据结构》试卷A参考答案
烟台大学成人高等教育期末考试《数据结构与算法》试卷A 参考答案及评分标准
一、
1.算法的特征:有穷性、确定性、可行性、有输入、有输出。
算法设计的要求:正确、可使用、可读、健壮、高效。
2.数据元素之间的逻辑结构:集合、线形、树形、图形结构
逻辑结构的本质性:数据结构在用户面前的呈现形式,数据元素之间的邻接关系的描
述,与数据的存储无关,独立于计算机。
3.抽象数据类型:
数据元素描述
数据之间的逻辑关系描述
施加在数据上的基本操作
4.(1)链式存储;插入、删除操作频繁,适合链式存储的特点。
(2)顺序存储:数据移用少,随机存储,适合顺存储特点
5. (1)需要求解的问题可以转化为一个或多个子问题来求解,而这些子问题的求解方法
与原问题相同,只是规模减小。
(2)递归调用的次数是有限的。
(3)必须有结束递归的条件。
二、
1.n-i+1
2. a b c a b c a a a
-1 0 0 0 1 2 3 4 1
3. GetHead((a,b,c))=(a,b,c)
GetHead(GetTail((a,b),(c,d )))=(c,d)
4. 15
5. 图。
第一章测试1.数据结构的基本任务是()。
A:数据结构的评价与选择B:数据结构的设计与实现C:数据结构的运算实现D:逻辑结构和存储结构的设计答案:B2.计算算法的时间复杂度是属于一种()。
A:事前分析估算的方法B:事后分析估算的方法C:事后统计的方法D:事前统计的方法答案:A3.可以用()定义一个完整的数据结构。
A:数据元素B:数据关系C:抽象数据类型D:数据对象答案:C4.数据的逻辑关系是指数据元素的()。
A:存储方式B:数据项C:关联D:结构答案:C5.算法的计算量的大小称为计算的()。
A:效率B:复杂性C:实现性D:难度答案:B6.算法的时间复杂度取决于()。
A:问题的规模B:问题的规模和待处理数据的初态C:待处理数据的初态D:都不是答案:B7.数据元素是数据的最小单位。
()A:对B:错答案:B8.数据结构是带有结构的数据元素的结合。
()A:错B:对答案:B9.算法和程序没有区别,所以在数据结构中二者是通用的。
()A:错B:对答案:A10.数据结构的抽象操作的定义与具体实现有关。
()A:对B:错答案:B第二章测试1.下述哪一条是顺序存储结构的优点?()。
A:存储密度大B:删除运算方便C:插入运算方便D:可方便地用于各种逻辑结构的存储表示答案:A2.下面关于线性表的叙述中,错误的是哪一个?()。
A:线性表采用链接存储,便于插入和删除操作B:线性表采用顺序存储,必须占用一片连续的存储单元C:线性表采用链接存储,不必占用一片连续的存储单元D:线性表采用顺序存储,便于进行插入和删除操作答案:D3.线性表是具有n个()的有限序列(n>0)。
A:数据项B:表元素C:数据元素D:字符答案:C4.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。
A:顺序表B:双链表C:带头结点的双循环链表D:单循环链表答案:A5.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。
计算机2002-123数据结构试题参考答案一、单项选择题(在每个小题四个备选答案中选出一个正确答案,填在题末的括号中)(本大题共10小题,每小题2分,总计20分)1、D2、B3、B4、B5、C6、B7、C8、D9、A 10、D二、二、填空(本大题共10小题,每小题1分,总计10分)1、连通分量2、结点个数/23、6 14、(n-1)/25、EF-G*ABC-/+D*6、11407、2K-1 2K-18、堆栈9、动态查找表10、先序遍历中序遍历三、解答下列问题(本大题共6小题,每小题5分,总计30分)1、因为:H(19)=19 MOD 13=6H(14)=14 MOD 13=1H(23)=23 MOD 13=10H(1)=1 MOD 13=1 冲突所以(H(1)+1)MOD 16=2H(68)=68 MOD 13=3H(20)=20 MOD 13=7H(84)=84 MOD 13=6 冲突所以(H(84)+1)MOD 16=7 冲突所以(H(84)+2)MOD 16=8H(27)=27 MOD 13=1 冲突所以(H(27)+1)MOD 16=2 冲突所以(H(27)+2)MOD 16=3 冲突所以(H(27)+3)MOD 16=4H(55)=27 MOD 13=3 冲突所以(H(55)+1)MOD 16=4 冲突所以(H(55)+2)MOD 16=5 冲突H(11)=11 MOD 13=11H(10)=10 MOD 13=10 冲突所以(H(10)+1)MOD 16=11 冲突所以(H(10)+2)MOD 16=12 冲突H(79)=79 MOD 13=1 冲突所以(H(79)+1)MOD 16=2 冲突所以(H(79)+2)MOD 16=3 冲突所以(H(79)+3)MOD 16=4 冲突所以(H(79)+4)MOD 16=5 冲突所以(H(79)+5)MOD 16=6 冲突所以(H(79)+6)MOD 16=7 冲突所以(H(79)+7)MOD 16=8 冲突所以(H(79)+8)MOD 16=9 冲突(2)查找成功的平均查找长度为:2、30 10 1 0 10 1 0 10 1 0 1编码为:7为:00008为:000118为:00132为:013为:10005为:100112为:10126为:114、iclosedg23456U V-U KAdjvex lowcost 1161∞1∞119121{1}{2,3,4,5,6}2Adjvex lowcost 02516119211{1,2}{3,4,5,6}3Adjvex lowcost 0026119211{1,2,3}{4,5,6}4Adjvex lowcost 000418211{1,2,3,4}{5,6}6Adjvex lowcost0004180{1,2,3,4,6}{5 }5 61313 78141282352010304050601020301020304050所以最小生成树为:5、第一趟:[68 11 69 23 18] 70 [93 73]第二趟:[18 11 23 ] 68 [ 69 ] 70 [93 73 ]第三趟:11 18 23 68 69 70 [ 93 73]第四趟:11 18 23 68 69 70 73 93四、算法设计题(本大题共2小题,总计15 分)1、(7分)#define size 100int correct(char exp[size],int len){ char s[size];int top=0,I=0,tag=1;while(I<len && tag!=0){ if(exp[I]==’(‘ || exp[I]==’[‘ || exp[I]==’{‘}{ top++;s[top]=exp[I];}if(exp[I]==’)’){ if(s[top]==’(‘) top--;else tag=0;}if(exp[I]==’)’){if(s[top]==’[‘ ) top--;else tag=0;}if(exp[I]==’)’){if(s[top]==’{‘ } top--;else tag=0;}I++;}if(top>0)top=0;return tag;}2、(8分)#include "iostream.h"#define NULL 0#define N 10typedef struct node{ ELEMTP data;struct node *lchild,*rchild;}TNode;//求给定结点的所有祖先和祖先数int count_zx(TNode *t,ELEMTP x){ struct {TNode *pp; int tag; }s[N],ss;int top,n;TNode *p; top=0; n=0; p=t;while( p || top>0){ while(p){ top++;s[top].pp=p;s[top].tag=0;p=p->lchild; }ss=s[top]; top--;if(ss.tag==0){ ss.tag=1; top++;s[top]=ss; p=ss.pp->rchild;}else {if(ss.pp->data==x)break; p=NULL;} }cout<<"the zx wei:"<<endl;for(n=1;n<=top;n++) {p=s[n].pp;cout<<p->data<<" "; }return top;}五.(10分)已知二叉树每个非终端节点都有左孩子和右孩子,试回答下列问题:解:(1)由已知:因为二叉树的每个非终端结点都有左右孩子,可知此二叉树的所有非终端结点的度都为2,无度为1的结点,又因为此树有n个叶结点,根据二叉树的性质3知度都为2的结点数为n-1个,所以此二叉树共有n+n-1=2n-1个结点。
数据结构知到章节测试答案智慧树2023年最新海南师范大学第一章测试1.从一个二维数组b[m][n]中找出最大值元素的时间复杂度为参考答案:m*n2.在以下时间复杂度的数量级中,数量级最大的是参考答案:3.下面程序段的时间复杂度为____________。
for(int i=0; i<m; i++)for(int j=0; j<n; j++)a[i][j]=i*j;参考答案:O(m*n)4.执行下面程序段时,执行S语句的次数为()。
for(int i=1; i<=n; i++)for(int j=1; j<=i; j++)S;参考答案:n(n+1)/25.线性结构是数据元素之间存在一种:()。
参考答案:一对一关系6.数据结构中,与所使用的计算机无关的是数据的()结构。
参考答案:逻辑7.算法分析的目的是:()。
参考答案:分析算法的效率以求改进8.算法分析的两个主要方面是:()。
参考答案:空间复杂性和时间复杂性9.计算机算法指的是:()。
参考答案:解决问题的有限运算序列10.计算机算法必须具备输入、输出和()等5个特性。
参考答案:可行性、确定性和有穷性11.一个算法的好坏可以通过复杂性、可读性、健壮性、高效性这四个方面进行评价。
参考答案:错12.数据结构是一门研究算法的学科。
参考答案:错13.数据结构中,数据的逻辑结构包括线性结构、图结构、树形结构、集合。
参考答案:对14.线性表的逻辑顺序与存储顺序总是一致的。
参考答案:错15.每种数据结构都具备三个基本运算:插入、删除和查找。
参考答案:错16.线性结构中元素之间只存在多对多关系。
参考答案:错17.在线性结构中,第一个结点没有前驱结点。
参考答案:对18.在图形结构中,每个结点的前驱结点数和后续结点数可以任意多个。
参考答案:对19.算法分析的目的是分析算法的效率以求改进。
参考答案:对20.同一逻辑结构采用不同的存储方法,可以得到不同的存储结构。
《数据结构》国开02272形考任务(1-4)试题答案合集数据结构国开形考任务(1-4)试题答案合集任务一答案1. 答案:选项B。
栈是一种先进后出(Last-In-First-Out,LIFO)的数据结构,它的插入和删除操作只能在一端进行。
队列是一种先进先出(First-In-First-Out,FIFO)的数据结构,它的插入操作在一端进行,删除操作在另一端进行。
2. 答案:选项C。
顺序表是一种用数组实现的线性表,通过下标直接访问元素。
链表是一种通过指针连接各个节点的数据结构,每个节点包含数据和指向下一个节点的指针。
3. 答案:选项A。
递归是一种通过调用自身的方法解决问题的技巧。
递归可以简化问题的解决过程,但需要注意递归深度和递归终止条件,避免出现无限递归。
4. 答案:选项D。
图是由节点和节点之间的边组成的数据结构。
树是一种特殊的图,其中不存在环的图被称为树。
树具有层次结构,包括根节点、子节点和叶节点等概念。
任务二答案1. 答案:选项C。
栈的应用场景包括函数调用、表达式求值和括号匹配等。
队列的应用场景包括任务调度、消息传递和缓冲区管理等。
2. 答案:选项B。
栈的插入和删除操作都在同一端进行,时间复杂度为O(1)。
队列的插入操作在一端进行,删除操作在另一端进行,时间复杂度也为O(1)。
3. 答案:选项A。
顺序表的插入和删除操作需要移动其他元素,平均时间复杂度为O(n)。
链表的插入和删除操作只需要修改指针,时间复杂度为O(1)。
4. 答案:选项C。
递归虽然简化了问题的解决过程,但会消耗额外的内存空间,递归深度过大时可能导致栈溢出。
迭代使用循环结构解决问题,不会出现递归的问题。
任务三答案1. 答案:选项A。
线性表是一种具有连续存储空间的数据结构,插入和删除操作需要移动其他元素,时间复杂度为O(n)。
树的插入和删除操作只需要修改指针,时间复杂度为O(1)。
2. 答案:选项D。
二叉树是一种特殊的树,每个节点最多有两个子节点。
数据结构的试题及答案一、选择题1. 在数据结构中,线性表的顺序存储方式被称为:A. 栈B. 队列C. 链表D. 数组答案:D2. 以下哪种数据结构是动态数据结构?A. 数组B. 链表C. 栈D. 队列答案:B3. 树的度是树内所有节点的度的最大值,树的深度是树的最长路径上的节点数。
以下哪个选项正确描述了树的度和深度?A. 度是节点的最大值,深度是路径上节点数B. 度是路径上节点数,深度是节点的最大值C. 度是节点的最大值,深度是节点的最大值D. 度是路径上节点数,深度是路径上节点数答案:A二、简答题1. 请简述链表和数组的区别。
答案:链表和数组是两种不同的数据存储方式。
数组是连续的内存空间,可以通过索引快速访问元素,但插入和删除操作可能需要移动大量元素。
链表由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针,链表的插入和删除操作不需要移动其他元素,但访问特定元素需要从头开始遍历。
2. 什么是二叉搜索树?它有哪些特点?答案:二叉搜索树(BST)是一种特殊的二叉树,其中每个节点的值都大于或等于其左子树中的任何节点的值,并且小于或等于其右子树中的任何节点的值。
BST的主要特点是它支持快速的查找、插入和删除操作,时间复杂度为O(log n)。
三、计算题1. 给定一个链表,编写一个算法来删除链表中的重复元素。
答案:以下是删除链表中重复元素的算法步骤:- 遍历链表,使用一个哈希表来记录已经遇到的元素。
- 当遍历到一个新元素时,检查它是否已经在哈希表中。
- 如果已经存在,删除当前节点,并继续遍历。
- 如果不存在,将元素添加到哈希表中,并继续遍历。
- 完成遍历后,链表中的重复元素将被删除。
2. 假设有一个二叉搜索树,编写一个算法来找到树中第k小的元素。
答案:以下是找到二叉搜索树中第k小元素的算法步骤:- 从根节点开始,使用中序遍历(左-根-右)。
- 遍历过程中,记录访问的节点数量。
- 当访问到第k个节点时,该节点即为所求的第k小的元素。
《数据结构》国开02272形考任务(1-4)试题答案合集数据结构国开02272形考任务(1-4)试题答案合集任务一:请简述数据结构的定义和作用。
数据结构是指数据元素之间的关系组成的结构,是一种组织和存储数据的方式。
它涉及到数据的存储、检索和操作等方面。
数据结构的作用在于提供了一种有效的方式来组织和管理数据,使得数据的访问和操作更加高效和方便。
任务二:请简述线性表的定义和特点。
线性表是一种数据结构,它是由一系列数据元素组成的有序序列。
线性表中的元素之间存在前后关系,每个元素只有一个前驱和一个后继,除了第一个元素没有前驱,最后一个元素没有后继。
线性表的特点包括元素之间存在顺序关系、元素的个数有限、元素类型可以相同或不同、元素可以重复。
任务三:请简述栈和队列的定义、特点和应用场景。
栈是一种具有特定操作约束的线性表,它只允许在表的一端进行插入和删除操作,这一端被称为栈顶。
栈的特点是后进先出(LIFO),即最后插入的元素最先被删除。
队列也是一种具有特定操作约束的线性表,它允许在表的一端进行插入操作,另一端进行删除操作,分别称为队尾和队头。
队列的特点是先进先出(FIFO),即最先插入的元素最先被删除。
栈和队列在计算机科学中有广泛的应用。
栈常用于表达式求值、函数调用、回溯等场景,而队列常用于任务调度、缓冲区管理、广度优先搜索等场景。
任务四:请简述链表和数组的定义、特点和应用场景。
链表是一种数据结构,它由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。
链表的特点是节点的内存分布不连续,每个节点可以动态分配空间,节点之间的连接通过指针来实现。
数组是一种数据结构,它由一系列元素按照一定的顺序排列而成。
数组的特点是元素的内存分布连续,每个元素占用相同大小的空间,可以通过索引来访问和操作元素。
链表和数组在数据存储和访问方面有不同的特点和应用场景。
链表适用于频繁插入和删除操作的场景,因为它可以动态分配内存并且插入和删除操作的时间复杂度为O(1)。
数据结构试题(含答案)数据结构试题(含答案)一、选择题1. 数据结构是计算机科学中的一个重要概念。
下列选项中,不属于数据结构的是:A. 数组B. 栈C. 数据库D. 链表答案:C2. 在数据结构中,栈(Stack)是一种后进先出(LIFO)的数据结构。
下列操作中,不属于栈的是:A. 入栈B. 出栈C. 遍历D. 清空栈答案:C3. 链表(Linked List)是一种常见的数据结构,它由一系列节点组成,每个节点包含两个部分:数据和指向下一个节点的指针。
下列选项中,不属于链表的是:A. 单链表B. 双链表C. 循环链表D. 二叉树答案:D4. 哈希表(Hash Table)是一种根据关键码直接访问存储位置的数据结构。
下列选项中,不属于哈希表的优点是:A. 快速查找B. 插入和删除操作效率高C. 数据无序D. 冲突较少答案:C二、填空题1. 树(Tree)是一种非线性数据结构,它由一组以边连接的节点组成。
树中每个节点最多可以有________个子节点。
答案:无限制/任意个2. 图(Graph)是由节点和连接节点的边组成的数据结构。
图中节点的度是指与该节点相连接的边的________。
答案:数量3. 广度优先搜索(BFS)和深度优先搜索(DFS)是常用的图遍历算法。
在BFS中,使用________结构来保存待访问的节点。
答案:队列4. 在二叉搜索树(Binary Search Tree)中,左子树中的每个节点的值都小于根节点的值,右子树中的每个节点的值都大于根节点的值。
这种特性称为_______________。
答案:二叉搜索树性质三、简答题1. 请简要说明线性数据结构和非线性数据结构的区别。
答案:线性数据结构是指数据元素之间存在一对一的线性关系,例如数组、栈、队列等;而非线性数据结构是指数据元素之间存在一对多或多对多的关系,例如树、图等。
线性数据结构的存储方式是连续的,非线性数据结构的存储方式是离散的。
数据结构阶段测评大全含答案一、数据结构的基本概念和分类数据结构是计算机科学中非常重要的概念,它是指数据元素之间的关系及其操作方法的研究。
数据结构可以分为线性结构、树状结构和图状结构。
线性结构是最基本的数据结构之一,包括线性表、栈、队列和串。
线性表是由若干个具有相同类型的数据元素组成的有限序列,它的特点是元素之间只有一个前驱和一个后继。
栈是一种特殊的线性表,它的特点是只能在一端进行插入和删除操作,即后进先出。
队列也是一种特殊的线性表,它的特点是只能在一端进行插入操作,而在另一端进行删除操作,即先进先出。
串是由零个或多个字符组成的有限序列,它是一种特殊的线性表。
树状结构是一种重要的非线性结构,包括二叉树、多叉树和赫夫曼树。
二叉树是每个节点最多有两个子树的树结构,它的特点是左子树和右子树是有顺序的。
多叉树是每个节点可以有多个子节点的树结构,它的特点是子节点之间没有顺序。
赫夫曼树是一种带权路径长度最短的树结构,它广泛应用于数据压缩和编码中。
图状结构是数据结构中最复杂的一种,包括图和有向图。
图是由顶点集合和边集合组成的,它的特点是顶点之间可以有多个相互关联的边。
有向图是图的一种特殊形式,它的边有方向,即从一个顶点到另一个顶点。
二、数据结构的常用算法和应用1. 线性结构的常用算法(1)线性表的顺序存储结构和链式存储结构。
顺序存储结构是将元素存放在一块连续的存储空间中,它的特点是可以随机访问元素。
链式存储结构是通过指针将元素存放在不连续的存储空间中,它的特点是插入和删除操作较为方便。
(2)栈的应用:括号匹配、逆波兰表达式计算等。
(3)队列的应用:生产者消费者问题、优先级队列等。
2. 树状结构的常用算法(1)二叉树的遍历:前序遍历、中序遍历和后序遍历。
(2)二叉搜索树的插入和删除操作。
(3)赫夫曼树的构建和编码解码。
3. 图状结构的常用算法(1)图的遍历:深度优先搜索和广度优先搜索。
(2)最短路径问题:Dijkstra算法和Floyd算法。
(单选题)1: 算法的计算量的大小称为计算的()。
A: 效率B: 复杂性C: 现实性D: 难度正确答案: B(单选题)2: 若对n阶对称矩阵A按行优先顺序将其下三角形的元素(包括主对角线上的所有元素)依次存放于一维数组B [1..n(n+1)/2 ] 中,则在B中确定aij ( i < j)的位置k的关系为 () 。
A: i*(i-1)/2+jB: j*(j-1)/2+iC: i*(i+1)/2+jD: j*(j+1)/2+i正确答案: B(单选题)3: 设二维数组A[0..m-1][0..n-1]按行优先顺序存储且每个元素占c个单元,则元素A[i][j]的地址为 ()。
A: LOC(A[0][0]) + (j*m+i)*cB: LOC(A[0][0]) + (i*n+j)*cC: LOC(A[0][0]) + [(j-1)*m+i-1]*cD: LOC(A[0][0]) + [(i-1)*n+j-1]*c正确答案: B(单选题)4: ( ) 的遍历仍需要栈的支持。
A: 前序线索二叉树B: 中序线索二叉树C: 后序线索二叉树D: 前三种均需要正确答案: C(单选题)5: 若X是中序线索二叉树中一个有右子女的结点,且X不为根,则X的中序后继为( )。
A: X的双亲B: X的右子树中最左下的结点C: X的左子树中最右下的结点D: X的右子树中最左下的叶结点正确答案: B(单选题)6: 下面的排序方法中,辅助空间为O( n ) 的是 ()。
A: 希尔排序B: 堆排序C: 选择排序D: 归并排序。
数据结构试卷(一)王彬一、单选题(每题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进制表示。
cA.688 B.678 C.692 D.6965.树最适合用来表示( )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( d ).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)C. O(1og2n)D. O(n2)9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有( c d)个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
A.5B.6C.7D.8二、填空题(每空1分,共26分)1.通常从四个方面评价算法的质量:____ ____、________、________和_______。
2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。
国开形成性考核02272《数据结构》形考任务(1-4)试题及答案国开形成性考核《数据结构》形考任务(1-4)试题及答案形考任务(1)一、单项选择题(每小题3分,共60分)1.把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为(B)。
A。
给相关变量分配存储单元B。
物理结构C。
逻辑结构D。
算法的具体实现2.下列说法中,不正确的是(B)。
A。
数据项是数据中不可分割的最小可标识单位B。
数据项可由若干个数据元素构成C。
数据可有若干个数据元素构成D。
数据元素是数据的基本单位3.一个存储结点存储一个(D)。
A。
数据类型B。
数据项C。
数据结构D。
数据元素4.数据结构中,与所使用的计算机无关的是数据的(B)。
A。
存储结构B。
逻辑结构C。
物理和存储结构D。
物理结构5.在线性表的顺序结构中,以下说法正确的是(D)。
A。
进行数据元素的插入、删除效率较高B。
逻辑上相邻的元素在物理位置上也相邻C。
数据元素是不能随机访问的D。
逻辑上相邻的元素在物理位置上不一定相邻6.对链表,以下叙述中正确的是(D)。
A。
可以通过下标对链表进行直接访问B。
插入删除元素的操作一定要要移动结点C。
结点占用的存储空间是连续的D。
不能随机访问任一结点7.下列的叙述中,不属于算法特性的是(B)。
A。
可行性B。
可读性C。
有穷性D。
输入性8.算法的时间复杂度与(B)有关。
A。
所使用的计算机B。
算法本身C。
数据结构D。
计算机的操作系统9.设有一个长度为n的顺序表,要在第i个元素之前(也就是插入元素作为新表的第i个元素),插入一个元素,则移动元素个数为(C)。
A。
iB。
n-iC。
n-i+1D。
n-i-110.设有一个长度为n的顺序表,要删除第i个元素移动元素的个数为(D)。
A。
n-i-1B。
iC。
n-i+1D。
n-i11.在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句(D)。
的第一个结点和尾结点,则删除操作后的链表长度为(C)。
1. (判断题) 在有n个叶子结点的哈夫曼树中,其结点总数2n+1。
( )(本题2.0分)A、正确B、错误学生答案: B标准答案:B解析:得分: 22. (判断题) 链表由头指针唯一确定。
( )(本题2.0分)A、正确B、错误学生答案: A标准答案:A解析:得分: 23. (判断题) 完全二叉树的叶子结点只能出现在最后一层上。
( )(本题2.0分)A、正确B、错误学生答案: B标准答案:B解析:得分: 24. (判断题) 由树转化来的二叉树一定没有右子树。
( )(本题2.0分)A、正确B、错误学生答案: A标准答案:A解析:得分: 25. (判断题) 折半查找要求数据必须有序,且采用顺序存储结构。
( )(本题2.0分)A、正确B、错误学生答案: A标准答案:A解析:得分: 26. (判断题) 有回路的图不能进行拓朴排序。
( )(本题2.0分)A、正确B、错误学生答案: A标准答案:A解析:得分: 27. (判断题) 在顺序存储的线性表中,逻辑上相邻的两个数据元素在物理位置上并不一定紧邻。
( )(本题2.0分)A、正确B、错误学生答案: B标准答案:B解析:得分: 28. (判断题) 链式存储的线性表可以随机存取。
( )(本题2.0分)A、正确B、错误学生答案: B标准答案:B解析:得分: 29. (判断题) 散列表的查找效率主要取决于建表时所选取的散列函数和处理冲突的方法。
( )(本题2.0分)A、正确B、错误学生答案: A标准答案:A解析:得分: 210. (判断题) 对于同一组记录,生成的二叉排序树的形态与记录的输入次序无关。
( )(本题2.0分)A、正确B、错误学生答案: B标准答案:B解析:得分: 211. (单选题) 设有一个二维数组A[10][15],数组按行存放,假设A[0][0]存放位置在644,每个元素占一个空间,则A[4][5]在( )位置。
(本题2.0分)A、672B、626C、709D、724学生答案: C标准答案:C解析:得分: 212. (单选题) 顺序查找方法适用于存储结构为( )的线性表。
3. 在长度为n的顺序表中,求第i个元素的直接前驱算法的时间复杂度为0(1)。
()【答案】对9. 任何一棵二叉树的叶结点在三种遍历中的相对次序是不变的。
()【答案】对24. 在一棵具有n个结点的线索二叉树中,每个结点的指针域可能指向子女结点,也可能作为线索,使之指向某一种遍历次序的前驱或后继结点,所有结点中作为线索使用的指针域共有n个。
( ) 【答案】错30. 对于一棵具有n个结点,其高度为h的二叉树,进行任一种次序遍历的时间复杂度为O(n)。
( )【答案】对32. 顺序表的空间利用率高于链表。
()【答案】对48. 线性表若采用链式存储表示, 在删除时不需要移动元素。
()【答案】对53. 循环链表的结点与单链表的结点结构完全相同,只是结点间的连接方式不同。
()【答案】对59. 两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。
()【答案】对73. 在任意一棵二叉树的前序序列和后序序列中,各叶子之间的相对次序关系都相同。
()【答案】对78. 链式栈与顺序栈相比, 一个明显的优点是通常不会出现栈满的情况。
()【答案】对95. 线索二叉树中的每个结点通常包含有5个数据成员。
( )【答案】对111. 链队列的出队操作是不需要修改尾指针的。
()【答案】错122. 对于一棵具有n个结点的任何二叉树,进行前序、中序或后序的任一种次序遍历的空间复杂度为O(log2n)。
( )【答案】错123. 用字符数组存储长度为n的字符串,数组长度至少为n+1。
()【答案】对万维试题库系统第1 页。
第一章概论一、选择题1、研究数据结构就是研究( D )。
A. 数据的逻辑结构B. 数据的存储结构C. 数据的逻辑结构和存储结构D. 数据的逻辑结构、存储结构及其基本操作2、算法分析的两个主要方面是( A )。
A. 空间复杂度和时间复杂度B. 正确性和简单性C. 可读性和文档性D. 数据复杂性和程序复杂性3、具有线性结构的数据结构是( D )。
A. 图B. 树C. 广义表D. 栈4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、( B )等5个特性。
A. 可执行性、可移植性和可扩充性B. 可执行性、有穷性和确定性C. 确定性、有穷性和稳定性D. 易读性、稳定性和确定性5、下面程序段的时间复杂度是( C )。
for(i=0;i<m;i++)for(j=0;j<n;j++)a[i][j]=i*j;A. O(m2)B. O(n2)C. O(m*n)D.O(m+n)6、算法是( D )。
A. 计算机程序B. 解决问题的计算方法C. 排序算法D. 解决问题的有限运算序列7、某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示( C )。
A. O(n)B. O(nlog2n)C. O(n2)D. O(log2n)8、下面程序段的时间复杂度为( C )。
i=1;while(i<=n)i=i*3;A. O(n)B. O(3n)C. O(log3n)D. O(n3)9、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的()和运算等的学科。
A. 结构B. 关系C. 运算D. 算法10、下面程序段的时间复杂度是(A )。
i=s=0;while(s<n){i++;s+=i;}A. O(n)B. O(n2)C. O(log2n)D. O(n3)11、抽象数据类型的三个组成部分分别为( A)。
A. 数据对象、数据关系和基本操作B. 数据元素、逻辑结构和存储结构C. 数据项、数据元素和数据类型D. 数据元素、数据结构和数据类型12、通常从正确性、易读性、健壮性、高效性等4个方面评价算法的质量,以下解释错误的是()。
2012—2013学年第 2 学期《数据结构》(A卷)参考答案及评分标准一、单项选择题(每道选择题只有一个正确答案;共15小题,每小题2分,共计30分)1-5 DCCCD 6-10 BCCCB 11-15 ABBBC二、程序填空题(共2小题,10空,每空1分,共10分;答错根据情况酌情给分)1. L.r[i] i-1 L.r[j].key L.r[j+1] L.r[j] L.r[j+1]2.r->next=p r->next=q r=r->next r->next=p三、二叉树操作(按照要求答题;共5小题,每小题4分,共20分;答错根据情况酌情给分)1. [] A B D [] C F [] [] [] E [] G2. ABCEDFG3. 4. 5.四、图操作(按照要求答题;共5小题,每小题5分,共25分;答错根据情况酌情给分)1. 2.22013647318412∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞12345673.深度优先顺序:v0 v1 v4 v2 v3 v6 v7 v5广度优先顺序:v0 v1 v3 v4 v6 v2 v7 v54.加入节点顺序:v0 v1 v4 v7 v5 v6 v2 v35.加入节点顺序:v0 v1 v4 v7 v5 v6 v2 v3五、计算和编程题(共2小题,第1小题5分,第2小题10分,共15分;答错根据情况酌情给分)行优先:60+8*[(8-5)*20*40+(5-10)*40+(30-20)]=17740 //(3分,根据情况酌情给分)列优先:60+8*[(30-20)*20*10+(5-10)*10+(8-5)]=15684 //(2分,根据情况酌情给分)2.部分标示符名称可任意。
typedef struct node{int data;struct node *lchild, * rchild;} *BiTree; //----3分,根据情况酌情给分void VistLeaves(BiTree tree){if(tree==NULL) return;if(tree->lchild==NULL && tree->rchild==NULL) Visit(tree->data);VistLeaves(tree->lchild);VistLeaves(tree->rchild);} //---7分,根据情况酌情给分。
《数据结构》国开02272形考任务(1-4)试题与答案汇总一、选择题(每题5分,共20分)1. 数据的逻辑结构就是数据的(A)A. 元素之间的关系B. 物理结构C. 元素的值D. 元素的数量2. 线性表的存储结构有(D)A. 顺序存储和链式存储B. 顺序存储和索引存储C. 链式存储和散列存储D. 顺序存储、链式存储和索引存储3. 下面哪个不是线性表的运算(C)A. 插入B. 删除C. 排序D. 查找4. 在长度为n的线性表中,删除第i个元素(i从1开始),需要移动(A)A. n-i个元素B. i个元素C. n个元素D. 0个元素答案:AADB二、填空题(每题5分,共20分)1. 长度为n的线性表,其元素一共有n个。
2. 线性表的顺序存储结构是利用一组地址连续的存储单元依次存储线性表的元素。
3. 在线性表中,删除第i个元素后,从第i个元素到表尾的所有元素都向前移动一个位置。
4. 栈是一种特殊的线性表,只允许在表的一端进行插入和删除操作。
答案:略三、判断题(每题5分,共20分)1. 线性表是一种最基本的数据结构,它的特点是数据元素之间是一对一的关系。
(正确)2. 顺序存储结构的特点是存取方便,但插入和删除操作需要移动大量元素。
(正确)3. 链式存储结构的特点是不需要连续的存储空间,但插入和删除操作需要修改指针。
(正确)4. 栈和队列都是线性结构,但栈的操作是后进先出,而队列的操作是先进先出。
(正确)答案:略四、简答题(每题10分,共40分)1. 简述线性表的顺序存储结构的特点。
(10分)顺序存储结构是利用一组地址连续的存储单元依次存储线性表的元素。
其特点是存取方便,时间复杂度为O(1)。
但插入和删除操作需要移动大量元素,时间复杂度为O(n)。
2. 简述线性表的链式存储结构的特点。
(10分)链式存储结构是由一系列结点组成的线性序列,每个结点包含数据域和指针域。
其特点是无需连续的存储空间,插入和删除操作只需修改指针,时间复杂度为O(1)。
数据结构测验二一、单项选择题:1.任何一棵二叉树T,如果其终端结点数为no ,度为2的结点数为n2,则()。
A.no =n2+1 B. n2=n+1 C.n=2n2+1 D.n2=2n+12.设X是一棵树,x’是对应于X的二叉树,则X的后根遍历和x’的()遍历相同。
A.先序B.中序C.后序D.层次序3.深度为K的二叉树至多有()个结点。
A. 2kB. 2k–1C. 2k-1D. 2k-1 -1 4.将一棵有100个结点的完全二叉树从上到下,从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子编号为()。
A.98 B.99 C.50 D.485.结点先序为XYZ的不同二叉树,那么它有()不同形态。
A.3 B.4 C.5 D.66.某二叉树的先序和后序序列正好相反,则该二叉树一定是()的二叉树。
A.空或只有一个结点B.高度等于其结点数C.任一结点无左孩子D.任一结点无右孩子7.树最适合用来表示()。
A.有序数据元素 B.无序数据元素C.元素之间无联系的数据D.元素之间有分支层次关系的数据8.二叉树在线索化后,仍不能有效求解的问题是()。
A.前序线索二叉树中求前序后继 B.中序线索二叉树中求中序后继C.中序线索二叉树中求中序前趋 D.后序线索二叉树中求后序后继9.判断线索二叉树中某结点p有左孩子的条件是()。
A.p!=null B.p->lchild!=nullC.p->ltag==Thread D.p->ltag==Link10.任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序()。
A.发生改变 B.不发生改变C.不能确定 D.以上都不对11、任何一个无向连通图的最小生成树()。
A. 只有一棵B. 一棵或多棵C. 一定有多棵D. 可能不存在12.在一个无向图图中,所有顶点的度数之和等于图的边数的()倍。
A.l/2 B. 1 C.2 D. 4 13.有8个结点的无向图最多有()条边。
A.14 B.28 C.56 D.112 14.用邻接表表示图进行深度优先遍历时,通常采用()来实现算法的。
A.栈B.队列C.树D.图15、深度优先遍历类似于二叉树的()。
A. 先序遍历B. 中序遍历C. 后序遍历D. 层次遍历16、对于一个具有n个顶点的有向图,采用邻接矩阵表示该矩阵的大小是()。
A. nB. (n-1)2C. n-1D. n2二、判断题(认为正确在答题处写T,不正确写)1.n(n>2)个结点的二叉树中至少有一个度为2的结点。
2.在任何一棵完全二叉树中,终端结点或者与分支结点一样多,或者只比分支结点多一个。
3.二叉树的遍历只是为了在应用中找到一种线性次序4.二叉树的先序遍历序列“cctv”并不能唯一确定这棵树5.哈夫曼树中不存在度为1的结点6.如果表示某个图的邻接矩阵是不对称矩阵,则该图一定是有向图7.连通分量是无向图的极小连通子图8.连通图的广度优先搜索中一般要采用队列来存储刚访问过的顶点9.最小生成树是指边数最少的生成树。
10.任何有向无环图的结点都可以排成拓扑排序,拓扑序列不唯一三、简答题:1.已知权值:4,2,3,7,6,18,27请画出相应的哈夫曼树并计算其带权路径长度WPL(要求左孩子的权小于同一双亲右孩子的权)。
2.一棵二叉树的先序、中序和后序序列分别如下,其中一部分未给出,试求出空格处的内容,并画出二叉树的中序前驱线索。
先序:_B F_ICEH G中序:D_KFIA EJC_后序: K FBHJ G A3.已知图G如下所示,画出G的邻接矩阵和邻接表。
4.假定无向图G有6个结点和7条边,并依次输入这8条边为(A,B),(A,D),(A,E),(G,C),(B,E),(C,F),(D,E)。
试从顶点A出发,分别写出按深度优先搜索和广度优先搜索进行遍历的结点序列。
5.图G=(V,E),V={0,1,2,3,4,5},E={〈0,1〉},〈0,2〉,〈1,4〉,〈2,5〉,〈5,4〉,〈4,3〉,〈5,3〉}。
写出图G中顶点的所有拓扑排序。
6.设无向图G的邻接矩阵如下所示,画出用Prim算法得的最小生成树。
(从顶点0开始,写出计算过程)∞ 1 2 2 21 ∞ 3 ∞∞2 3 ∞ 5 ∞2 ∞ 5 ∞ 32 ∞∞3 ∞四、算法设计题目(先写出物理结构):1.写出二叉树的存储结构,并写出判断二叉树中结点p是否是结点q的祖先的算法。
2.写出图的深度优先遍历的算法答题纸学号: 姓名:题号 1 2 3 4 5 6 7 8 答题 A B B A C B D D 题号 9 10 11 12 13 14 15 16 答题DBBCBAAD题号 1 2 3 4 5 6 7 8 9 10 答题 ×T×TTT×T×T三、简答题:1.已知权值:4,2,3,7,6,18,27请画出相应的哈夫曼树并计算其带权路径长度WPL (要求左孩子的权小于同一双亲右孩子的权)。
(6)WPL=27*1+18*2+(4+6+7)*4+(2+3)*5=27+36+68+25=15623549671321183927662.一棵二叉树的先序、中序和后序序列分别如下,其中一部分未给出,试求出空格处的内容,并画出二叉树的中序前驱线索。
(8) 先序:A B D F K ICEH J G中序:D B KFIA H EJC G 后序:D K I FBHJ E G C A3.已知图G 如下所示,画出G 的邻接矩阵和邻接表(4)。
∞ 1 3 4 1 ∞ 5 2 3 5 ∞ 6 4 2 6 ∞4.假定无向图G 有7个结点和7条边,并依次输入这7条边为(A ,B ),(A ,D ),(A ,E ),(G ,C ),(B ,E ),(C ,F ),(D ,E )。
试从顶点A 出发,分别写出按深度优先搜索和广度优先搜索进行遍历的生成树。
(6)a cdb345261深度优先搜索广度优先搜索4.假定无向图G有6个结点和7条边,并依次输入这7条边为(A,B),(A,D),(A,E),(G,C),(B,D),(C,F),(D,G)。
试从顶点A出发,分别写出按深度优先搜索和广度优先搜索进行遍历的生成树。
深度优先搜索广度优先搜索5.图G=(V,E),V={0,1,2,3,4,5},E={〈0,1〉},〈0,2〉,〈1,4〉,〈2,5〉,〈5,4〉,〈4,3〉,〈5,3〉}。
写出图G中顶点的所有拓扑排序。
(6)0 1 2 5 4 30 2 1 5 4 30 2 5 1 4 36.设无向图G的邻接矩阵如下所示,画出用Prim算法得的最小生成树。
(从顶点0开始,写出计算过程)(10)∞ 1 2 2 21 ∞ 3 ∞∞2 3 ∞ 5 ∞2 ∞ 5 ∞ 32 ∞∞3 ∞7.最短工期是97最早开工时间是:四、算法设计题目:(10*2)1.写出二叉树的存储结构,并写出判断二叉树中结点p是否是结点q的祖先的算法。
//- - - - -二叉树的二叉链表存储表示- - - - -typedef struct BiTNode{ TElemType data;struct BiTNode *lchild, *rchild; //左右孩子指针} BiTNode, *BiTree;方法一:BiTree find(BiTree T,TElemType p){ if(T|| T->data==p) return T;s= find(T->lchild,p);if(s)return s;else return find(T->lchild,p);}}int panduan(BiTree T, TElemType p, TElemType q){ if(T){ s=find(T,p);if( s){ t=find(s,q);if(t) return OK;}}return ERROR;}2.写出图的深度优先遍历的算法(10分)int visited[MAX]; // 访问标志数组Status (* VisitFunc))(int v); // 函数指针变量void DFSTraverse(Graph G, Status(* Visit)(int v))// 对图G作深度优先遍历{VisitFunc = Visit;//使用全局变量VisitFunc,使DFS不必设函数指针参数for(v=0; v<G.vexnum; ++v)visited[v] = FALSE ;// 访问标志数组初始化for(v=0; v<G.vexnum; ++v )if(!visited[v]) DFS (G,v ); //对尚未访问的顶点调用DFS}void DFS(Graph G, int v)//从第v个顶点出发递归地深度优先遍历图G{visited[v]=TRUE;VistFunc(v); //访问第v个顶点for(w=FirstAdjVex(G,v);w>=0; w=NextAdjVex(G,v,w))if(!visited[w]) DFS(G,w);//对v的尚未访问的邻接顶点w递归调用DFS }。