华师2019数据结构答案
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个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
华师大 数据结构 第三章 补充练习及答案
1.选择题(1)一个顺序表第一个元素的存储存储地址是100,每个元素的长度为2,则第五个元素的地址是。
A 110B 108C 100D 120(2)判定一个顺序栈(最多元素为m0)为空的条件是。
A top!=0B top= =0C top!=m0D top= =m0(3)栈的特点是,队列的特点是。
A 先进先出B 先进后出(4) 一个队列的入队序列是1,2,3,4,则队列的输出序列是。
A 4,3,2,1B 1,2,3,4C 1,4,3,2D 3,2,4,1(5) 一个栈的输入序列是12345,则栈的输出序列43512是。
A 不可能B 可能(6) 一个栈的输入序列是12345,则栈的输出序列12345是。
A 不可能B 可能4 编写一个程序,从键盘读入若干个整数(假定读入的整数个数不能预先确定,用0表示输入结束)。
然后按相反的顺序输出。
NODE *top=NULL;Main(){NODE *p;Int x;Scanf(“%d”,&x);While(x!=0){LPush(x);Scanf(“%d”,x);}p=top;while(p){printf(“%d”, p->data);p=p->next;}}6 请编写一个算法,把一个队列逆置。
Struct node{ char data;Struct node *link;};typedef struct node NODE;NODE *head=NULL,tail,*top=NULL;V oid inverse-queue(){While(head!=NULL){DeleteLQueue(&y);LPush(y);}while(top!=NULL){LPop(&y);InsertLQueue(y);}}9. 对于循环队列(采用第二种方法)(1)试写出求队列长度的算法。
char q[Maxn],head=tail=0;int len-CirQueue(){return (tail-head+Maxn)%Maxn;}(2)试写出判断队列为空的算法。
华师大 数据结构 第一章 补充练习及答案
一.iu单项选择题:1.数据结构是一门研究非数值计算的程序设计问题中计算机的①以及它们之间的②和运算等的学科。
①A 数据元素 B 计算方法 C 逻辑存储 D 数据映像②A 结构 B 关系 C 运算 D 算法2.数据结构被形式的定义为(K,R),其中K是①的有限集,R是K上②有限集。
① A 算法 B 数据元素 C 数据操作 D 逻辑结构② A 操作 B 映像 C 存储 D 关系二填空题:1.在线性结构中,第一个结点没有前驱结点,其余结点有且仅有一个前驱结点,最后一个结点没有后继结点,其余结点有且仅有一个后继结点。
2.在树形结构中,树根没有前驱结点,其余结点有且仅有一个前驱结点,叶子结点没有后继结点,其余结点的后继结点可以任意多个。
3.图结构中,每个结点的前驱结点和后继结点可以任意多个。
4.线性结构中元素之间存在一对一的关系,树形结构中元素存在一对多的关系,图结构中元素存在多对多的关系。
习题答案:10.int select(float a[], int n){int i;for(i=0;i<n;i++)if(a[i]>1000) return i;return –1}11.编写一个递归算法,找出浮点数数组a[]的前n个成员的最大值。
Version1:float max(float a[],int n){float c;if (n==1) return a[0];else {c=max(a,n-1);return c>a[n-1]?c:a[n-1];}}version 2:float max(float a[], int right, int left){ float c;if(left==right) return a[left];else{c=max(a,left+1,right);return c>a[left]?c:a[left];}}。
华师2019数据结构答案
华师2019数据结构答案1.第1题下列各式中,按增长率由小至大的顺序正确排列的是( )。
A.n1/2,n!,2n,n3/2B.n3/2,2n,n logn,2100C.2n,logn,n logn,n3/2D.2100,logn, 2n, n nA.AB.BC.CD.D您的答案:D题目分数:2此题得分:2.02.第2题串s=″Data Structure″中长度为3的子串的数目是( )。
A.9B.11C.12D.14您的答案:C题目分数:2此题得分:2.03.第5题给定整数集合{3,5,6,9,12},与之对应的哈夫曼树是( )。
A.AB.BC.CD.D您的答案:C题目分数:2此题得分:2.04.第6题连通网的最小生成树是其所有生成树中( )。
A.顶点集最小的生成树B.边集最小的生成树C.顶点权值之和最小的生成树D.边的权值之和最小的生成树您的答案:D题目分数:2此题得分:2.05.第7题如果某图的邻接矩阵是对角线元素均为零的上三角矩阵,则此图是( )。
A.有向完全图B.连通图C.强连通图D.有向无环图您的答案:D题目分数:2此题得分:2.06.第18题以下广义表关系正确的是( )。
A.线性表<再入表<纯表<递归表B.线性表<纯表<递归表<再入表C.纯表<线性表<再入表<递归表D.线性表<纯表<再入表<递归表您的答案:D题目分数:2此题得分:2.07.第19题假定有k个关键字互为同义词,若用线性探测法把这k个关键字存入散列表中,。
华师网络学院作业答案-数据结构判断题
消除递归不一定需要使用栈。
答案:正确在开散列表中不会出现堆积现象。
答案:正确在链栈上进行进栈操作时,不需判断栈满。
答案:正确算法的正确性,一般不进行形式化的证明,而是用测试来验证。
答案:正确顺序表不需存放指针,链表要存放指针,故链表的存储空间要求总是比顺序表大。
答案:错误如果n个顶点的无向图有n条边,则图中肯定有回路。
答案:正确图G的生成树T是G的子图。
答案:正确数组的基本运算有读、写、插入、删除等。
答案:错误不管树的深度和形态如何,也不可能构造出一棵有100个结点的哈夫曼树。
答案:正确如果根结点的左子树和右子树高度差不超过1,则该二叉树是平衡二叉树。
答案:错误排序的目的是为了方便以后的查找。
答案:正确以中序方式遍历一个堆,则得到一个有序序列。
答案:正确二叉树中可能所有结点的度都小于2。
答案:正确顺序表可以按序号随机存取。
答案:正确在二叉排序树中,即使删除一个结点后马上再插入该结点,该二叉排序树的形态也可能不同。
答案:正确队列在使用中必须设置两个指针,分别指向真正的队头和队尾的位置。
答案:错误数据的逻辑结构和运算集组成问题的数学模型,与计算机无关。
对称矩阵压缩存储后仍然可以随机存取。
答案:正确有向图中顶点i的出度等于邻接矩阵中第i行中1的个数;入度等于第i列中1的个数。
答案:错误树和森林都可转化为二叉树,故对给定的二叉树,不能区分是由树还是森林转换来的。
答案:错误循环队列中入队和出队的节点位置可出现在数组的任一端,已不满足“一端进另一端出”的要求,故实际上已不是队列了。
答案:错误顺序查找法不仅可用于顺序表上的查找,也可用于链表上的查找。
答案:正确有向图中边数等于邻接矩阵中1的个数;也等于邻接表中的边表结点数。
答案:正确直接插入排序是稳定的,而Shell排序就是调用若干趟直接插入排序,故也是稳定的。
答案:错误基数排序不需进行关键字间的比较,故执行时间比基于比较的排序方法要快。
答案:错误由二叉树的先根和后根序列可以唯一确定该二叉树。
《数据结构》课后题及答案
第一章绪论一、选择题1、( )是数据的基本单位。
A) 数据结构B)数据元素C)数据项D)数据类型2、以下说法不正确的是( )。
A)数据结构就是数据之间的逻辑结构。
B)数据类型可看成是程序设计语言中已实现的数据结构。
C)数据项是组成数据元素的最小标识单位。
D)数据的抽象运算不依赖具体的存储结构。
3、计算机算法是解决问题的有限运算序列,它具备输入、输出和()等5个特性。
A)可执行性、可移植性和可扩充性B)可行性、确定性和有穷性C)确定性、有穷性和稳定性D)易读性、稳定性和安全性4、一般而言,最适合描述算法的语言是( )。
A)自然语言B)计算机程序语言C)介于自然语言和程序设计语言之间的伪语言D)数学公式5、通常所说的时间复杂度指( )。
A)语句的频度B)算法的时间消耗C)渐近时间复杂度D)最坏时间复杂度6、A算法的时间复杂度为O(n3),B算法的时间复杂度为O(2n),则说明( )。
A)对于任何数据量,A算法的时间开销都比B算法小B)随着问题规模n的增大,A算法比B算法有效C)随着问题规模n的增大,B算法比A算法有效D)对于任何数据量,B算法的时间开销都比A算法小7、算法分析的目的是()。
A)找出数据结构的合理性B)研究算法中的输入和输出的关系C)分析算法的效率以求改进D)分析算法的易懂性和文档性8、下面程序段的时间复杂度为()。
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)9、下面算法的时间复杂度为( )。
int f ( int n ){ if ( n= =0 || n= =1 ) return 1; else return n*f (n-1); }A) O(1) B) O(n) C) O(n2) D) O(n!)二、填空题1、数据的( )结构依赖于计算机语言。
【奥鹏】19春华师《数据结构》在线作业[第三套]答案
【奥鹏】19春华师《数据结构》在线作业
试卷满分:100 试卷得分:100
一、单选题(共30题,60分)
1、向一个栈顶指针为HS的链栈中插入—个s所指结点时,则执行()
AHS->next=S
BS->next=HS->next;HS->next=S
CS->next=HS;HS=S
DS->next=HS;HS=HS->next;
[仔细阅读以上试题,并作出选择]
正确选择:C
2、对于一组结点,从空树开始,把它们插入到二叉排序树中,就建立了一棵二叉排序树。
这时,整个二叉排序树的形状取决于()。
A结点的输入顺序
B结点的存储结构
C结点的取值范围
D计算机的硬件
[仔细阅读以上试题,并作出选择]
正确选择:A
3、算法分析的目的是()
A找出数据结构的合理性
B研究算法中的输入和输出的关系
C分析算法的效率以求改进
D分析算法的易懂性和文档性
[仔细阅读以上试题,并作出选择]
正确选择:C
4、稀疏矩阵一般的压缩存储方法有两种,即()。
A二维数组和三维数组
B三元组和散列
C三元组和十字链表
D散列和十字链表
[仔细阅读以上试题,并作出选择]
正确选择:C
5、已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是()。
Aacbed
Bdecab
Cdeabc
Dcedba
[仔细阅读以上试题,并作出选择]
正确选择:D。
(完整版) 《数据结构》教材课后习题+答案
第1章绪论习题1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。
2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。
3.简述逻辑结构的四种基本关系并画出它们的关系图。
4.存储结构由哪两种基本的存储方法实现?5.选择题(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.栈6.试分析下面各程序段的时间复杂度。
(1)x=90; y=100;while(y>0)if(x>100){x=x-10;y--;}else x++;(2)for (i=0; i<n; i++)for (j=0; j<m; j++)a[i][j]=0;(3)s=0;for i=0; i<n; i++)for(j=0; j<n; j++)s+=B[i][j];sum=s;(4)i=1;while(i<=n)i=i*3;(5)x=0;for(i=1; i<n; i++)for (j=1; j<=n-i; j++)x++;(6)x=n; //n>1y=0;while(x≥(y+1)* (y+1))y++;(1)O(1)(2)O(m*n)(3)O(n2)(4)O(log3n)(5)因为x++共执行了n-1+n-2+……+1= n(n-1)/2,所以执行时间为O(n2)(6)O(n)第2章线性表1.选择题(1)一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是()。
《数据结构》教材课后习题+答案
《数据结构》教材课后习题+答案数据结构第一章介绍数据结构是计算机科学中重要的概念,它涉及到组织和存储数据的方法和技术。
数据结构的选择对于算法的效率有着重要的影响。
本教材为读者提供了丰富的课后习题,以帮助读者巩固所学知识并提高解决问题的能力。
下面是一些选定的习题及其答案,供读者参考。
第二章线性表习题一:给定一个顺序表L,编写一个算法,实现将其中元素逆置的功能。
答案一:算法思路:1. 初始化两个指针i和j,分别指向线性表L的首尾两个元素2. 对于L中的每一个元素,通过交换i和j所指向的元素,将元素逆置3. 当i>=j时,停止逆置算法实现:```pythondef reverse_list(L):i, j = 0, len(L)-1while i < j:L[i], L[j] = L[j], L[i]i += 1j -= 1```习题二:给定两个线性表A和B,编写一个算法,将线性表B中的元素按顺序插入到线性表A中。
答案二:算法思路:1. 遍历线性表B中的每一个元素2. 将B中的元素依次插入到A的末尾算法实现:```pythondef merge_lists(A, B):for element in B:A.append(element)```第三章栈和队列习题一:编写一个算法,判断一个表达式中的括号是否匹配。
表达式中的括号包括小括号"()"、中括号"[]"和大括号"{}"。
答案一:算法思路:1. 遍历表达式中的每一个字符2. 当遇到左括号时,将其推入栈中3. 当遇到右括号时,判断栈顶元素是否与其匹配4. 当遇到其他字符时,继续遍历下一个字符5. 最后判断栈是否为空,若为空则表示括号匹配算法实现:```pythondef is_matching(expression):stack = []for char in expression:if char in "([{":stack.append(char)elif char in ")]}":if not stack:return Falseelif (char == ")" and stack[-1] == "(") or (char == "]" and stack[-1] == "[") or (char == "}" and stack[-1] == "{"):stack.pop()else:return Falsereturn not stack```习题二:利用两个栈实现一个队列。
华中师范大学网络学院《数据结构》试题库及答案
华中师范大学网络学院《数据结构》试题库及答案一、选择题1 在数据结构中,从逻辑上可以把数据结构分成()。
A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和非内部结构2.算法分析的目的是();A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系C. 分析算法的效率以求改进D. 分析算法的易懂性和文档性3. 算法分析的两个主要方面是()。
A. 空间复杂度和时间复杂度B. 正确性和简单性C.可读性和文档性 D. 数据复杂性和程序复杂性4.一个顺序表(即顺序存储的线性表)第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是()。
A.100 B.108 C.100 D.1205.在一个长度为n 的顺序表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要向后移动()个元素。
A.n-iB.n-i-1C.n-i+1D.i6.从一个长度为n 的顺序表中删除第i个元素(1≤i≤n+1)时,需要向前移动()个元素。
A.n-iB.n-i-1C.n-i-1D.i7.若长度为n的线性表采用顺序存储结构,在表的第i个位置插入一个元素的算法的时间复杂度是()A.O(n) B.O(n*n) C.O(nlog2n) D.O(log2n)8.线性表的存储结构是一种()的存储结构A.随机存取B.顺序存取C.索引存取D.HASH存取9.线性表的链式存储结构是一种()的存储结构。
A.随机存取B.顺序存取C.索引存取D.HASH存取10.若线性表采用顺序存储结构,每个元素占用4个存储单元,第一个元素的存储地址为100,则第12个元素的存储地址是()A.112 B.144 C.148 D.41211.若频繁地对线性表进行插入和删除操作,该线性表应该采用()存储结构。
A.散列 B.顺序 C.链式 D.任意12.线性表若采用链表存储结构时,要求内存中可用存储单元的地址()。
A.必须是连续的B.部分地址必须是连续的C.一定是不边疆的D.连续不连续都可以13.在非空线性链表中,在由p所指的链结点后面插入一个由q所指的链结点的过程是依次执行()A.q->next=p; p->next=q;B.q->next=p->next; p->next=q;C.q->next=p->next; p=q;D.p->next=q; q->next=p;14.若删除非空线性链表中由p所指链结点的直接后继结点的过程是依次执行( )A.r=p->next; p->next=r; call RET(r)B.r=p->next; p->next=r->next; call RET(r)C.r=p->next; p->next=r->next; call RET(p)D.p->next=p->next->next; call RET(p)15.删除一个双链表中结点p(非头结点和尾结点)的操作是( ).A. p->left->right=p->left;p->right->left=p->rightB. p->left->right=p->right;p->right->left=p->ieftC. p->left=NULL;p->right=NULLD. p->right->left=p;p->left->right=p16.在一个双链表中结点p之后插入一个结点s的操作是( )。
数据结构(查找)习题与答案
一、单选题1、对于查找表(13,27,38,49,50 ,65,76,97)采用顺序查找,在等概率情况下查找成功的平均查找长度是()。
A.4.5B.9C.4D.8正确答案:A2、在关键字序列(10,20,30,40,50)中采用折半查找20,依次与()关键字进行了比较。
A.30,10,20B.20C.30,20D.40,20正确答案:A3、在关键字序列(8,12,20,25,33)中,采用二分查找25,关键字之间比较需要()次。
A.2B.1C.3D.4正确答案:A4、对于长度为11的有序表,按折半查找,在等概率情况下查找成功时,其平均查找长度是()。
A.3B.4C.1D.2正确答案:A5、对于长度为11的有序表,按折半查找,在查找失败时,待查找值域表中关键字比较的次数是()。
A.3次或4次B.2次或3次C.4次或5次D.1次或2次正确答案:A6、对于长度为n的有序表,按折半查找,在等概率情况下查找成功平均时间复杂度是()。
A.O(㏒n)B.O(n)C.O(1)D.O(n㏒n)正确答案:A7、索引顺序查找也叫分块查找,其查找过程分为是()个步骤。
A.1B.3C.4D.2正确答案:D8、对于长度为n的关键字序列创建一颗二叉排序树,该树可能的最大高度是()。
A.n+1B.n-1C.㏒nD.n正确答案:D9、对于关键字序列(30,25,40,35,45),按序列次序创建一颗二叉排序树,在等概率情况下查找成功时,其平均查找长度是()。
A.8/3B.11/5C.8D.11正确答案:B10、影响散列查找时间效率的主要因素()。
A.仅与散列表中实际元素个数相关B.仅与散列表长相关C.与散列表长和散列表中实际元素个数均相关D.与散列表长和散列表中实际元素个数均不相关正确答案:C11、一组关键字序列为(27,17,9,19,16,43,53,8,63),用哈希函数H(key)=key MOD 8和链地址法处理冲突,查找关键字43,与散列表中关键字进行了()次比较。
《数据结构》课后参考答案
《数据结构》课后参考答案单元练习1⼀.判断题(下列各题,正确的请在前⾯的括号打√;错误的打╳)(√)(1)数据的逻辑结构与数据元素本⾝的容和形式⽆关。
(√)(2)⼀个数据结构是由⼀个逻辑结构和这个逻辑结构上的⼀个基本运算集构成的整体。
(ㄨ)(3)数据元素是数据的最⼩单位。
(ㄨ)(4)数据的逻辑结构和数据的存储结构是相同的。
(ㄨ)(5)程序和算法原则上没有区别,所以在讨论数据结构时可以通⽤。
(√)(6)从逻辑关系上讲,数据结构主要分为线性结构和⾮线性结构两类。
(√)(7)数据的存储结构是数据的逻辑结构的存储映像。
(√)(8)数据的物理结构是指数据在计算机实际的存储形式。
(ㄨ)(9)数据的逻辑结构是依赖于计算机的。
(√)(10)算法是对解题⽅法和步骤的描述。
⼆.填空题(1)数据有逻辑结构和存储结构两种结构。
(2)数据逻辑结构除了集合以外,还包括:线性结构、树形结构和图形结构。
(3)数据结构按逻辑结构可分为两⼤类,它们是线性结构和⾮线性结构。
(4)树形结构和图形结构合称为⾮线性结构。
(5)在树形结构中,除了树根结点以外,其余每个结点只有 1 个前趋结点。
(6)在图形结构中,每个结点的前趋结点数和后续结点数可以任意多个。
(7)数据的存储结构⼜叫物理结构。
(8)数据的存储结构形式包括:顺序存储、链式存储、索引存储和散列存储。
(9)线性结构中的元素之间存在⼀对⼀的关系。
(10)树形结构结构中的元素之间存在⼀对多的关系,(11)图形结构的元素之间存在多对多的关系。
(12)数据结构主要研究数据的逻辑结构、存储结构和算法(或运算)三个⽅⾯的容。
(13)数据结构被定义为(D,R),其中D是数据的有限集合,R是D上的关系的有限集合。
(14)算法是⼀个有穷指令的集合。
(15)算法效率的度量可以分为事先估算法和事后统计法。
(16)⼀个算法的时间复杂性是算法输⼊规模的函数。
(17)算法的空间复杂度是指该算法所耗费的存储空间,它是该算法求解问题规模n 的函数。
数据结构课后习题答案-完整版
数据结构课后习题答案-完整版下面是《数据结构课后习题答案-完整版》的内容:---第一章:数组1. 题目:给定一个整数数组,判断是否存在两个元素之和等于目标值。
答案:使用双指针法,首先将数组排序,然后设置左指针指向数组头部,右指针指向数组尾部。
如果左指针和右指针指向的元素之和小于目标值,则左指针右移;如果大于目标值,则右指针左移;如果等于目标值,则找到了两个元素之和等于目标值的情况。
2. 题目:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数的下标。
答案:使用哈希表,在遍历数组的过程中,将每个元素的值和下标存储在哈希表中。
遍历到当前元素时,检查目标值与当前元素的差值是否在哈希表中,如果存在,则找到了两个数的下标。
---第二章:链表1. 题目:给定一个链表,判断链表中是否存在环。
答案:使用快慢指针法,定义两个指针,一个指针每次向前移动一个节点,另一个指针每次向前移动两个节点。
如果存在环,则两个指针必定会相遇。
2. 题目:给定一个链表,删除链表的倒数第N个节点。
答案:使用双指针法,定义两个指针,一个指针先移动N个节点,然后两个指针同时向前移动,直到第一个指针到达链表尾部。
此时第二个指针指向的节点即为要删除的节点。
---第三章:栈和队列1. 题目:设计一个栈,使得可以在常数时间内获取栈中的最小元素。
答案:使用辅助栈来保存当前栈中的最小元素。
每次压栈操作时,将当前元素与辅助栈的栈顶元素比较,只有当前元素较小才将其压入辅助栈。
2. 题目:设计一个队列,使得可以在常数时间内获取队列中的最大元素。
答案:使用双端队列来保存当前队列中的最大值。
每次入队操作时,将当前元素与双端队列的末尾元素比较,只有当前元素较大才将其压入双端队列。
---第四章:树和二叉树1. 题目:给定一个二叉树,判断它是否是平衡二叉树。
答案:通过递归遍历二叉树的每个节点,计算每个节点的左子树高度和右子树高度的差值。
如果任意节点的差值大于1,则该二叉树不是平衡二叉树。
《数据结构》复习题及参考答案
《数据结构》复习题及参考答案数据结构复习题及参考答案1. 什么是数据结构?数据结构是一种组织和存储数据的方式,它涉及到数据的组织方式、存储方式、访问方式以及对数据进行操作的算法等。
数据结构的选择对于解决不同类型的问题非常重要。
2. 数据结构有哪些常见的分类?数据结构可以分为以下几类:(1) 线性结构:线性结构是一种有序排列的数据结构,其中数据元素之间存在着一对一的关系。
常见的线性结构有数组、链表、栈和队列等。
(2) 非线性结构:非线性结构是一种数据元素之间存在多对多关系的结构,常见的非线性结构有树和图等。
(3) 逻辑结构:逻辑结构是指数据元素之间的逻辑关系,主要包括集合结构、线性结构、树形结构和图形结构等。
(4) 物理结构:物理结构是指数据的逻辑结构在计算机存储中的表示方式,主要包括顺序存储结构和链式存储结构等。
3. 什么是算法?算法是解决特定问题的一系列步骤或操作的有限序列。
一个算法通常包括输入、输出、基本操作、控制结构和定义算法执行的约定等。
4. 数据结构和算法之间的关系是什么?数据结构是算法的基础,而算法又依赖于数据结构。
只有选择合适的数据结构,才能实现高效的算法。
同时,算法的设计也会对数据结构的选择产生影响。
5. 请解释什么是时间复杂度和空间复杂度?时间复杂度是衡量算法执行时间消耗的度量,表示算法的运行时间与问题规模之间的关系。
通常用大O符号来表示时间复杂度,如O(n)、O(nlogn)等。
空间复杂度是衡量算法执行所需存储空间的度量,表示算法所需的额外空间与问题规模之间的关系。
同样也使用大O符号来表示,如O(1)、O(n)等。
6. 请简要描述以下数据结构的特点及应用场景:(1) 数组:数组是一种连续存储数据元素的线性结构,具有随机访问性能。
适用于知道元素位置的查找和修改操作。
(2) 链表:链表是一种通过指针连接的数据结构,具有插入、删除元素方便的特点。
适用于频繁插入、删除操作以及不知道具体位置的查找操作。
《数据结构(本)(本科必修)》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。
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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.第1题下列各式中,按增长率由小至大的顺序正确排列的是( )。
A.n1/2,n!,2n,n3/2B.n3/2,2n,n logn,2100C.2n,logn,n logn,n3/2D.2100,logn, 2n, n nA.AB.BC.CD.D您的答案:D题目分数:2此题得分:2.02.第2题串s=″Data Structure″中长度为3的子串的数目是( )。
A.9B.11C.12D.14您的答案:C题目分数:2此题得分:2.03.第5题给定整数集合{3,5,6,9,12},与之对应的哈夫曼树是( )。
A.AB.BC.CD.D您的答案:C题目分数:2此题得分:2.04.第6题连通网的最小生成树是其所有生成树中( )。
A.顶点集最小的生成树B.边集最小的生成树C.顶点权值之和最小的生成树D.边的权值之和最小的生成树您的答案:D题目分数:2此题得分:2.05.第7题如果某图的邻接矩阵是对角线元素均为零的上三角矩阵,则此图是( )。
A.有向完全图B.连通图C.强连通图D.有向无环图您的答案:D题目分数:2此题得分:2.06.第18题以下广义表关系正确的是( )。
A.线性表<再入表<纯表<递归表B.线性表<纯表<递归表<再入表C.纯表<线性表<再入表<递归表D.线性表<纯表<再入表<递归表您的答案:D题目分数:2此题得分:2.07.第19题假定有k个关键字互为同义词,若用线性探测法把这k个关键字存入散列表中,至少要进行( )次探侧。
A.k-1B.kC.k+1D.k(k+1)/2您的答案:D题目分数:2此题得分:2.08.第20题n个记录直接选择排序时所需的记录最多交换次数是( )。
A.n-1B.nC.n(n-1)/2D.n(n+1)/2您的答案:A题目分数:2此题得分:2.09.第21题线索二叉树中某结点为叶子的条件是( )。
A.p-> lchild!=NULL || p-> rchild!=NULLB.p-> ltag==0 || p-> rtag==0C.p-> lchild!=NULL & & p-> rchild!=NULLD.p-> ltag==1 & & p-> rtag==1您的答案:D题目分数:2此题得分:2.010.第22题设有向图n个顶点和e条边,进行拓扑排序时,总的计算时间为( )。
A)O(nlog2n)B)O(en)C)O(elog2n)D)O(n+e)A.AB.BC.CD.D您的答案:D题目分数:2此题得分:2.011.第23题在下列排序方法中,空间复杂性为O(log2n)的方法为( )。
A.直接选择排序B.归并排序C.堆排序D.快速排序您的答案:D题目分数:2此题得分:2.012.第27题算法分析的目的是( )。
A.找出数据结构的合理性B.研究算法中的输入/输出关系C.分析算法的效率以求改进D.分析算法的易读性您的答案:C题目分数:2此题得分:2.013.第28题若要在单链表中的结点*p之后插入一个结点*s,则应执行的语句是( )。
A.s-> next=p-> next; p-> next=s;B.p-> next=s; s-> next=p-> next;C.p-> next=s-> next; s-> next=p;D.s-> next=p; p-> next=s-> next;您的答案:A题目分数:2此题得分:2.014.第30题在散列查找中,平均查找长度主要与( )有关。
A.散列表长度B.散列元素的个数C.装填因子D.处理冲突方法您的答案:C题目分数:2此题得分:2.015.第31题对n个元素进行冒泡排序,最好情况下的只需进行( )对相邻元素之间的比较。
A.nB.n-1C.n+1D.n/2您的答案:B题目分数:2此题得分:2.016.第32题设计一个判断表达式中左右括号是否配对出现的算法,采用( )数据结构最好。
A.顺序表B.链表C.队列D.栈您的答案:D题目分数:2此题得分:2.017.第33题以下叙述错误的是( )。
A.数据可分为数值型和非数值型B.数据类型可分为原子类型和结构类型C.运算可分为加工型和引用型D.数据结构可分为逻辑结构和非逻辑结构您的答案:D题目分数:2此题得分:2.018.第34题导致队列下溢的操作是( )。
A.队满时执行出队B.队满时执行入队C.队空时执行出队D.队空时执行入队您的答案:C题目分数:2此题得分:2.019.第35题若要在O(1)的时间内将两个循环链表头尾相接,则应对两个循环链表各设置一个指针,分别指向( )。
A.各自的头结点B.各自的尾结点C.各自的第一个元素结点D.一个表的头结点,另一个表的尾结点您的答案:B题目分数:2此题得分:2.020.第43题设p指向单链表中的一个结点,s指向待插入的结点,则下述程序段的功能是( )。
s->next=p->next;p->next=s;t=p->data;p->data=s->data;s->data=t;A.结点*p与结点*s的数据域互换B.在p所指结点的元素之前插入元素C.在p所指结点的元素之后插入元素D.在结点*p之前插入结点*s您的答案:D题目分数:2此题得分:2.021.第44题下列编码中属前缀码的是( )。
A.{1,01,000,001}B.{1,01,011,010}C.{0,10,110,11}D.{0,1,00,11}您的答案:A题目分数:2此题得分:2.022.第45题设S=”abc”;T=”xyz”,则strcmp(S,T)的值为( )。
A.正数B.负数C.零D.不确定您的答案:B题目分数:2此题得分:2.023.第46题( )存储方式适用于折半查找。
A.键值有序的单链表B.键值有序的顺序表C.键值有序的双链表D.键值无序的顺序表您的答案:B题目分数:2此题得分:2.024.第47题单链表中增加头结点的目的是为了( )。
A.使单链表至少有一个结点B.标识表结点中首结点的位置C.方便运算的实现D.说明单链表是线性表的链式存储您的答案:C题目分数:2此题得分:2.025.第48题若某线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用( )存储方式最节省运算时间( )。
A.单链表B.顺序表C.双链表D.单循环链表您的答案:B题目分数:2此题得分:2.026.第49题若下图表示某广义表,则它是一种( )。
A.线性表B.纯表C.再入表D.递归表您的答案:D题目分数:2此题得分:0.027.第50题要解决散列引起的冲突问题,常采用的方法有( )。
A.数字分析法、平方取中法B.数字分析法、线性探测法C.二次探测法、平方取中法D.二次探测法、链地址法您的答案:B题目分数:2此题得分:0.028.第3题若二叉树中没有度为1的结点,则为满二叉树。
您的答案:错误题目分数:2此题得分:2.029.第4题消除递归不一定需要使用栈。
您的答案:正确题目分数:2此题得分:2.030.第8题顺序表不需存放指针,链表要存放指针,故链表的存储空间要求总是比顺序表大。
您的答案:错误题目分数:2此题得分:2.031.第9题线性表、树、图等都可以用广义表表示。
您的答案:正确题目分数:2此题得分:2.032.第10题基数排序不需进行关键字间的比较,故执行时间比基于比较的排序方法要快。
您的答案:错误题目分数:2此题得分:2.033.第11题设串的长度为n,则其子串个数为n(n+1)/2。
您的答案:错误题目分数:2此题得分:2.034.第12题关键路径是指起点到终点的最短路径,它决定了整个工期的长短。
您的答案:错误题目分数:2此题得分:2.035.第13题开散列表和闭散列表的装填因子都可大于、等于或小于1。
您的答案:错误题目分数:2此题得分:2.036.第14题若算法的复杂性与数据集的状态无关,则最好、最坏和平均复杂性是相同的。
您的答案:正确题目分数:2此题得分:2.037.第15题由普通树转换来的二叉树,其根结点一定没有右子树。
您的答案:正确题目分数:2此题得分:2.038.第16题计算机的内、外存越大,算法的空间复杂性就越低。
您的答案:错误题目分数:2此题得分:2.039.第17题在拓扑序列中,若两点Vi和Vj相邻,则从Vi到Vj有路径。
您的答案:错误题目分数:2此题得分:2.040.第24题循环队列中入队和出队的节点位置可出现在数组的任一端,已不满足“一端进另一端出”的要求,故实际上已不是队列了。
您的答案:错误题目分数:2此题得分:2.041.第25题有向图的邻接表和逆邻接表中的结点数肯定是相同的。
您的答案:正确题目分数:2此题得分:2.042.第26题顾名思义,快速排序法是在所有情况下,速度最快的排序方法。
您的答案:错误题目分数:2此题得分:2.043.第29题缩短关键路径上活动的工期一定能够缩短整个工程的工期。
您的答案:错误题目分数:2此题得分:2.044.第36题线索二叉链表就是用结点的空指针域来存放某种遍历的前趋和后继线索,所以线索二叉链表中就没有空指针了。
您的答案:错误题目分数:2此题得分:2.045.第37题用线性探测法解决突出时,同义词在散列表中是相邻的。
您的答案:错误题目分数:2此题得分:2.046.第38题计算机的速度越快,算法的时间复杂性就越低。
您的答案:错误题目分数:2此题得分:2.047.第39题链表中逻辑上相邻的元素在物理位置上不一定相邻。
您的答案:正确题目分数:2此题得分:2.048.第40题稀疏矩阵压缩存储后会丧失随机存取特性。
您的答案:正确题目分数:2此题得分:2.049.第41题以中序方式遍历一个堆,则得到一个有序序列。
您的答案:正确题目分数:2此题得分:2.050.第42题若链队列的头指针为F,尾指针为R,则队列中元素个数为R-F。
您的答案:错误题目分数:2此题得分:2.0作业总得分:96.0作业总批注:。