数据结构题

合集下载

数据结构试题集(包含答案-完整版)

数据结构试题集(包含答案-完整版)

数据结构试题集(包含答案-完整版)数据结构试题集(包含答案-完整版)1. 单选题1) 数据结构是一种()。

a) 存储结构b) 算法c) 数据模型d) 网络答案:c) 数据模型解析:数据结构是一种用于组织和存储数据的方式,描述了数据之间的关系以及对数据的操作。

2) 以下哪种数据结构可以通过索引直接访问元素?a) 链表b) 队列c) 栈d) 数组答案:d) 数组解析:数组是一种线性数据结构,可以通过索引直接访问指定位置的元素。

2. 多选题1) 哪些数据结构属于非线性结构?()a) 队列b) 树c) 栈d) 图答案:b) 树d) 图解析:线性结构中的元素存在一对一的关系,非线性结构中的元素存在一对多或多对多的关系,树和图属于非线性结构。

2) 下列哪些操作可以在栈上进行?()a) 入栈b) 出栈c) 查找d) 删除答案:a) 入栈b) 出栈解析:栈是一种后进先出(LIFO)的数据结构,只能在栈顶进行插入和删除操作。

3. 简答题1) 请简要介绍线性表和非线性表。

答案:线性表是数据元素的一个有限序列,元素之间存在一对一的关系。

非线性表是指元素之间存在一对多或多对多的关系,如树和图。

2) 请解释什么是时间复杂度和空间复杂度。

答案:时间复杂度是衡量算法执行效率的度量,表示算法的运行时间随输入规模增长的速度。

空间复杂度是指算法执行过程中所需的存储空间随输入规模增长的速度。

4. 编程题题目:实现一个栈,包含push、pop和getMin三个操作,要求时间复杂度为O(1)。

答案:class MinStack:def __init__(self):self.stack = []self.min_stack = []def push(self, x):self.stack.append(x)if not self.min_stack or x <= self.min_stack[-1]:self.min_stack.append(x)def pop(self):if self.stack.pop() == self.min_stack[-1]:self.min_stack.pop()def getMin(self):return self.min_stack[-1]解析:在栈的基础上,使用一个辅助栈min_stack来记录当前栈中的最小值。

数据结构试题(含答案)

数据结构试题(含答案)

数据结构试题一、单选题1、在数据结构的讨论中把数据结构从逻辑上分为(C )A 内部结构与外部结构B 静态结构与动态结构C 线性结构与非线性结构D 紧凑结构与非紧凑结构。

2、采用线性链表表示一个向量时,要求占用的存储空间地址(D )A 必须是连续的B 部分地址必须是连续的C 一定是不连续的D 可连续可不连续3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为( D )。

A nB n/2C (n-1)/2D (n+1)/2?4、在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行( D )。

A s→link = p→link;p→link = s;B p→link = s; s→link = q;C p→link = s→link;s→link = p;D q→link = s;s→link = p;5、如果想在4092个数据中只需要选择其中最小的5个,采用( C )方法最好。

A 起泡排序B 堆排序C 锦标赛排序D 快速排序6、设有两个串t和p,求p在t中首次出现的位置的运算叫做( B )。

A 求子串B 模式匹配C 串替换D 串连接7、在数组A中,每一个数组元素A[i][j]占用3个存储字,行下标i从1到8,列下标j从1到10。

所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储字数是( C )。

)A 80B 100C 240D 2708、将一个递归算法改为对应的非递归算法时,通常需要使用( A )。

A 栈B 队列C 循环队列D 优先队列9、一个队列的进队列顺序是1, 2, 3, 4,则出队列顺序为( C )。

10、在循环队列中用数组A[0..m-1] 存放队列元素,其队头和队尾指针分别为front和rear,则当前队列中的元素个数是( D )。

A ( front - rear + 1) % mB ( rear - front + 1) % mC ( front - rear + m) % mD ( rear - front + m) % m11、一个数组元素a[i]与( A )的表示等价。

数据结构练习题(含答案)

数据结构练习题(含答案)

数据结构练习题习题1 绪论1.1 单项选择题1. 数据结构是一门研究非数值计算的程序设计问题中,数据元素的①、数据信息在计算机中的②以及一组相关的运算等的课程。

① A.操作对象B.计算方法C.逻辑结构D.数据映象② A.存储结构B.关系C.运算D.算法2. 数据结构DS(Data Struct)可以被形式地定义为DS=(D,R),其中D是①的有限集合,R是D上的②有限集合。

① A.算法B.数据元素C.数据操作D.数据对象② A.操作B.映象C.存储D.关系3. 在数据结构中,从逻辑上可以把数据结构分成。

A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构4. 算法分析的目的是①,算法分析的两个主要方面是②。

① A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系C. 分析算法的效率以求改进D. 分析算法的易懂性和文档性② A. 空间复杂性和时间复杂性 B. 正确性和简明性C. 可读性和文档性D. 数据复杂性和程序复杂性5. 计算机算法指的是①,它必具备输入、输出和②等五个特性。

① A. 计算方法 B. 排序方法C. 解决问题的有限运算序列D. 调度方法② A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性C. 确定性、有穷性和稳定性D. 易读性、稳定性和安全性1.2 填空题(将正确的答案填在相应的空中)1. 数据逻辑结构包括、和三种类型,树形结构和图形结构合称为。

2. 在线性结构中,第一个结点前驱结点,其余每个结点有且只有个前驱结点;最后一个结点后续结点,其余每个结点有且只有个后续结点。

3. 在树形结构中,树根结点没有结点,其余每个结点有且只有个直接前驱结点,叶子结点没有结点,其余每个结点的直接后续结点可以。

4. 在图形结构中,每个结点的前驱结点数和后续结点数可以。

5. 线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在关系。

数据结构试题及答案(10套最新)

数据结构试题及答案(10套最新)

数据结构试题及答案(10套最新)数据结构试题及答案(10套最新)第一套试题:问题一:什么是数据结构?数据结构的作用是什么?回答:数据结构是一种组织和存储数据的方式,它关注数据元素之间的关系以及对数据元素的操作。

数据结构的作用包括提供高效的数据存储和访问方式,减少资源消耗,简化问题的解决方法,提高算法的性能和程序的可读性。

问题二:请列举几种常见的线性数据结构,并简要介绍它们的特点。

回答:常见的线性数据结构包括数组、链表和栈。

数组是一种连续存储数据元素的结构,具有随机访问的特点;链表是一种通过指针相连的数据元素,可以灵活地插入和删除元素;栈是一种遵循先进后出原则的数据结构,常用于解决递归问题。

问题三:请说明二叉树的定义及其性质。

回答:二叉树是一种特殊的树形数据结构,每个节点最多有两个子节点。

二叉树具有以下性质:每个节点最多有两个子节点,分别称为左子节点和右子节点;左子树和右子树都是二叉树;二叉树的节点个数为n,边的个数为n-1。

问题四:在数组中查找一个元素的时间复杂度是多少?为什么?回答:在数组中查找一个元素的时间复杂度是O(n),其中n是数组的长度。

因为在数组中查找元素需要按照索引一个一个比较,最坏情况下需要比较n次才能找到目标元素。

问题五:请解释堆排序算法的原理及时间复杂度。

回答:堆排序算法利用堆这种数据结构进行排序。

首先将待排序的元素构建成一个大顶堆,然后将堆顶元素与最后一个元素交换,继续调整堆,再取出堆顶元素与倒数第二个元素交换,依次执行,最后得到从小到大排序的序列。

堆排序的时间复杂度为O(nlogn)。

第二套试题:问题一:请解释图的邻接矩阵和邻接表表示法。

回答:图的邻接矩阵表示法是使用二维数组来表示图的连接关系,数组中的元素表示相应节点之间的边的关系。

邻接表表示法使用链表来表示图的连接关系,链表中的元素表示相邻节点之间的边的关系。

问题二:请说明深度优先搜索算法的原理及其应用。

回答:深度优先搜索(DFS)算法是一种遍历或搜索图的算法,其原理是从起始节点开始,依次深入到尽可能远的节点,直到无法继续深入为止,然后回溯到上一个节点,再继续深入其他未访问过的节点。

数据结构试题(含答案)

数据结构试题(含答案)

数据结构试题(含答案)1.数据逻辑结构包括线性结构、树形结构和图状结构三种类型,树形结构和图状结构合称非线性结构2.数据的逻辑结构分为集合、线性结构、树形结构和图状结构4种。

3.在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有1个前驱结点;最后一个结点没有后续结点,其余每个结点有且只有1个后续结点。

4.线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。

5.在树形结构中,树根结点没有前驱结点,其余每个结点有且只有1个前驱结点;叶子结点没.6.数据结构的基本存储方法是顺序、链式、索引和散列存储。

有后续结点,其余每个结点的后续结点可以任意多个。

7.衡量一个算法的优劣主要考虑正确性、可读性、健壮性和时间复杂度与空间复杂度。

8.评估一个算法的优劣,通常从时间复杂度和空间复杂度两个方面考察。

9.算法的5个重要特性是有穷性、确定性、可行性、输入和输出。

10.在单链表中,要删除某一指定的结点,必须找到该结点的前驱结点。

11.在单链表中,要删除某一指定的结点,必须找到该结点的前驱结点。

12.在双链表中,每个结点有两个指针域,一个指向前驱结点,另一个指向后继结点。

13.在顺序表中插入或删除一个数据元素,需要平均移动n 个数据元素,移动数据元素的个数与位置有关14.当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表的元素是,应采用顺序存储结构15.根据线性表的链式存储结构中每一个结点包含的指针个数,将线性链表分成单链表和双链表。

16.顺序存储结构是通过下标表示元素之间的关系的;链式存储结构是通过指针表示元素之间的关系的17.带头结点的循环链表L中只有一个元素结点的条件是L->next->next=L18.栈是限定仅在表尾进行插入或删除操作的线性表,其运算遵循后进先出的原则。

19.空串是零个字符的串,其长度等于零。

数据结构试题库及答案

数据结构试题库及答案

数据结构试题库及答案一、选择题1. 在数据结构中,线性结构的特点是:A. 元素之间存在一对一关系B. 元素之间存在一对多关系C. 元素之间存在多对多关系D. 元素之间存在一对一或多对多关系答案:A2. 栈(Stack)是一种特殊的线性表,其特点是:A. 只能在一端进行插入和删除操作B. 可以在两端进行插入和删除操作C. 只能在一端进行插入操作,另一端进行删除操作D. 可以在任意位置进行插入和删除操作答案:A3. 在二叉树中,度为1的节点数目为2,度为0的节点数目也为2,该二叉树的节点总数是:A. 5B. 6C. 7D. 8答案:B二、简答题1. 请简述什么是哈希表,并说明其主要优点。

答案:哈希表是一种通过哈希函数将键映射到表中一个位置来访问记录的数据结构。

其主要优点包括:平均情况下,查找、插入和删除操作的时间复杂度为O(1),即常数时间内完成操作;空间效率高,能够存储大量数据。

2. 描述图的深度优先搜索(DFS)算法的基本思想。

答案:深度优先搜索算法的基本思想是从一个顶点开始,尽可能深地搜索图的分支。

搜索过程中使用一个栈来保存路径上的顶点。

当搜索到一个顶点时,先访问该顶点,然后依次搜索其所有未被访问过的邻接顶点。

如果当前顶点的所有邻接顶点都被访问过,则回溯到上一个顶点,继续搜索其他邻接顶点。

三、应用题1. 给定一个无向图,使用邻接表表示,请编写一个算法找出图中的所有连通分量。

答案:首先,创建一个访问过的顶点集合。

然后,从图中任意一个未被访问的顶点开始,执行深度优先搜索(DFS)。

每次DFS完成后,就找到了一个连通分量。

重复这个过程,直到所有顶点都被访问过,即可找到图中的所有连通分量。

2. 假设有一个数组,需要频繁地进行查找、插入和删除操作,请设计一个适合这种场景的数据结构,并说明其优势。

答案:对于这种场景,可以使用平衡二叉搜索树(如AVL树或红黑树)。

这些数据结构可以保证在最坏情况下,查找、插入和删除操作的时间复杂度为O(log n)。

数据结构试题(含答案)

数据结构试题(含答案)

数据结构试题(含答案)一.是非题(勾选“√“用于更正和勾选”√1.数据结构可用三元公式(D,s,P)表示,其中:D为数据对象,s为D上的关系,p是对d的基本操作集。

×2.线性表的链式存储结构具有直接访问表中任何元素的优点。

×3. 字符串是特定于数据对象的线性表。

4.二叉树是一棵结点的度最大为二的树。

×5.邻接多表可用于表示无向图或有向图。

×6. 所有顶点的拓扑序都可以从任何有向图中得到。

× 7. 无向连通图的生成树是其最大连通子图。

× 8. 二叉排序树的搜索长度最多为log2n。

×9.对于一棵m阶的b-树.树中每个结点至多有m个关键字。

除根之外的所有非终端结点至几乎没有┌ M/2┌ 关键词。

×10.对于目前所知的排序方法,快速排序具有最好的平均性能。

11.顺序存储模式具有存储密度高、插入和删除操作效率高的优点。

× 12. 二维数组是一个线性表,其数据元素是线性表。

13.连通图g的生成树是一个包含g的所有n个顶点和n-1条边的子图。

×14.折半查找不适用于有序链表的查找。

15.完全二叉树必定是平衡二叉树。

16.中间顺序线索二叉树的优点是,在中间顺序下很容易找到直接前导节点和直接后继节点。

17.队列是一种完全不同于线性表的数据结构。

× 18. 平均搜索长度与记录的搜索概率有关。

19.二叉树中每个结点有两个子结点,而对一般的树,则无此限制,所以,二叉树是树的特殊情形。

×20.算法的时间复杂度越高,可读性越差;相反,算法的可读性越好,时间复杂度越差。

×二.选择题1.如果编号为1、2和3的列车车厢依次通过开关堆调度,则无法获得(E)的顺序。

a:1,2,3b:1,3,2c:2,1,3d:2,3,1e:3,1,2f:3,2,12.递归程序可借助于(b)转化为非递归程序。

a:线性表B:堆栈C:队列D:数组3.在下列数据结构中(c)具有先进先出(fifo)特性,(b)它具有先进先出的特点。

数据结构试题四套

数据结构试题四套

A卷、选择(共20分每题只有一个正确答案每题2分)1.数据结构是( D )A.一种数据类型B.数据的存储结构C.一组性质相同的数据元素的集合D.相互之间存在一种或多种特定关系的数据元素的集合2.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为( B )A.3,2,6,1,4,5 B.3,4,2,1,6,5C.1,2,5,3,4,6 D.5,6,4,2,3,13.求单链表中当前结点的后继和前驱的时间复杂度分别是( C )A.O(n)和O(1) B.O(1)和O(1)C.O(1)和O(n) D.O(n)和O(n)4.已知指针p和q分别指向某单链表中第一个结点和最后一个结点。

假设指针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为(A )A.q->next=s->next;s->next=p; B.s->next=p;q->next=s->next;C.p->next=s->next;s->next=q; D.s->next=q;p->next=s->next;5.已知函数Sub(s,i,j)的功能是返回串s中从第i个字符起长度为j的子串,函数Scopy(s,t)的功能为复制串t到s。

若字符串S=″SCIENCESTUDY″,则调用函数Scopy(S,Sub(S,1,7))后得到( C) A.P=″SCIENCE″ B.P=″STUDY″C.S=″SCIENCE″ D.S=″STUDY″6.对N个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为( A)A.(N+1)/2 B. N/2 C. N D. [(1+N)*N ]/27.下列陈述中正确的是( D)A.二叉树是度为2的有序树B.二叉树中结点只有一个孩子时无左右之分C.二叉树中必有度为2的结点D.二叉树中最多只有两棵子树,并且有左右之分8.设有一个10阶的对称矩阵A,采用下三角压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为(B )。

数据结构题目及答案

数据结构题目及答案

思考题一、填空题:(20分,每空1分)1、数据的基本单位是数据元素,最小单位是 s数据项。

2、 x=91; n=100;while(n>0){if (x>100){ x=x-10; n=n-1;}else x=x+1;}上述算法中语句x=x+1的执行次数T(n)= O(N^3) 。

3、已知二维数组A[21][11]采用行序为主方式存储,每个元素占4个存储单元,并且A[0][0]的存储地址为1016,则A[10][5]的存储地址是。

4、在进出规则上,队列的特点是,堆栈的特点是。

5、深度为5(根层次为1)的二叉树最多有个结点;第4层最多有个结点。

6、在长度为n的顺序表(即顺序存储结构的线性表)中插入一个元素,需要平均移动个元素。

7、在无向图中, 若对于任意一对顶点v i和v j, 都存在 , 则称此图是连通图。

8、设有一个10阶的对称矩阵A,采用压缩存储方式,以行为主存储,a00为第一个元素,其存储地址为1,每个元素占1个地址空间,则a75的地址为。

9、线性表的两种常用存储结构有存储结构和存储结构。

10、当增量d为1时,该趟希尔排序与排序基本一致。

11、数据结构是研究数据的,和算法。

12、常用图的存储结构有:邻接矩阵,邻接表,十字链表,邻接多重表;13、顺序表的插入算法int Insert(elemtype List[],int *num,int i, elemtype x) {int j;if(i<0| | i>*num+1){printf(“\n i值不合法 !”);return 0;}for (j=*num;j>=i;j--); /*数据元素依次后移*/List[ i]=x; (*num)++;return 1;}1在单链表中设置头结点的作用是___ 简化操作_____________________________________。

2顺序存储结构使线性表中逻辑上相邻的数据元素在物理位置上也相邻。

十套经典数据结构试题并带答案

十套经典数据结构试题并带答案

数据结构试卷(一)一、单选题(每题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)C. O(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个结点的无向图,该图至少应有( )条边才能确保是一个连通图。

A.5B.6C.7D.8二、填空题(每空1分,共26分)1.通常从四个方面评价算法的质量:_________、_________、_________和_________。

2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。

数据结构题库50题

数据结构题库50题

1.数据的(C)是面向计算机的A.数据结构B.逻辑结构C.物理结构D.线性结构E.非线性结构2.(C)是组成数据的基本单位。

A.数据项B.数据对象C.数据元素D.数据类型E.操作F.抽象数据类3.(B)特点是:信息隐蔽和数据封装,使用与实现相分离。

A.操作B.抽象数据类型C.数据元素D.数据4.下面程序段执行时,语句S的执行次数为:(D)A.n2B.n2/2C.n(n+1)D.n(n+1)/25.下面程序段的时间复杂度为:(B)A.O(1)B.O(n)C.O(n2)D.O(n!)6.一个算法的时间复杂度为(3n2+2nlog2n+4n-7)/(5n),其数量级表示为:(C)A.O(n2)B.O(nlog2n)C.O(n)D.O(log2n)7.在下面程序段中,s=s+p语句的执行次数为:(E)A.n2B.n2/2C.n(n+1)D.n(n+1)/2E.nF.n/28.下面程序段的时间复杂度为:(C)A.O(1)B.O(n)C.O(n2)D.O(n!)9.在线性表的下列运算中,不改变数据元素之间结构关系的运算是(D)A.插入B.删除C.排序D.定位10.线性表采用链式存储时,其地址(D)A.必须是连续的B.一定是不连续的C.部分地址必须是连续的D.连续与否均可以11.线性表L在(B)情况下适用于使用链式结构实现。

A.需经常修改L中的结点值B.需不断对L进行删除插入C.L中含有大量的结点D.L中结点结构复杂12.设单链表中结点的结构为(data,link),单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为(A)A.p->Link=p->Link->Link;B.p=p->Link;C.p=p->Link->Link;D.p->Link=p;13.在顺序表中,只要知道(D),就可在相同时间内求出任一表项的存储地址。

A.基地址B.表项序号C.向量大小D.基地址和表项序号14.在一个具有n个结点的有序单链表中插入一个新结点并保持该表有序的时间复杂度是(B)。

数据结构试题及答案(十套)

数据结构试题及答案(十套)

数据结构试题及答案(十套)数据结构试题及答案(十套)一、选择题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. 简要介绍顺序存储和链式存储这两种线性表的存储方式,并比较它们的优缺点。

答案:顺序存储是将元素按照逻辑顺序依次存储在一块连续的存储空间中,通过元素的下标可以直接访问到元素。

数据结构习题(含答案)

数据结构习题(含答案)

一、单选题(每小题3分,共30分)1.在逻辑上可以把数据结构分成。

( ) A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构2.串是_________。

( ) A.不少于一个字母的序列B.任意个字母的序列C.不少于一个字符的序列D.有限个字符的序列3.在n个元素的顺序表中,时间复杂度是O(1)的操作是______。

( ) A.获得第i个数据元素值B.查找给定值C.在第i个位置上插入数据元素D.删除第i个数据元素4.线性表若采用链式存储结构时,要求内存中可用存储单元的地址________。

( )A. 必须是连续的B. 部分地址必须是连续的C. 一定是不连续的D. 连续或不连续都可以5.单链表中,在p结点之后插入q结点,操作的语句为。

( ) A.q->next=p->next,p->next=q B.p=q->next,q->next=pC.p->next=q->next,q->next=p D.q=p->next,p->next=q6.栈中数据元素的插入和删除操作是在表的进行的。

( )A.一端B.两端C.中间D.任意位置7.队列的特点是。

( )A.先进先出B.后进先出C.先进后出D.随机存取8.树中结点A有3个兄弟,结点B是A的双亲,则B的度是。

( )A.1B.2C.3D.49.下面关于图的存储结构的叙述中正确的是____________。

( )A.用邻接矩阵存储图,占用空间大小只与图中顶点数有关,而与边数无关B.用邻接矩阵存储图,占用空间大小只与图中边数有关,而与顶点数无关C.用邻接表存储图,占用空间大小只与图中顶点数有关,而与边数无关D.用邻接表存储图,占用空间大小只与图中边数有关,而与顶点数无关10.对于不带权的有向图,其邻接矩阵的每一列包含的“1”的个数为。

( )A.图中每个顶点的入度B.图中每个顶点的出度C.图中弧的条数D.图中连通分量的数目二、判断题(每小题1分,共10分)对于正确的说法,请在题前的括号内打√,错误的说法则打×。

(完整版)数据结构练习题及参考答案

(完整版)数据结构练习题及参考答案

数据结构练习题第一部分绪论一、单选题1. 一个数组元素a[i]与________的表示等价。

A、 *(a+i)B、 a+iC、 *a+iD、 &a+i2. 对于两个函数,若函数名相同,但只是____________不同则不是重载函数。

A、参数类型B、参数个数C、函数类型3. 若需要利用形参直接访问实参,则应把形参变量说明为________参数A、指针B、引用C、值4. 下面程序段的时间复杂度为____________。

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、 O(m+n)5. 执行下面程序段时,执行S语句的次数为____________。

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)/26. 下面算法的时间复杂度为____________。

int f( unsigned 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. 数据的逻辑结构被分为__________、_________、__________和__________四种。

2. 数据的存储结构被分为__________、_________、__________和__________四种。

3. 在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着________、________和________的联系。

4. 一种抽象数据类型包括__________和__________两个部分。

5. 当一个形参类型的长度较大时,应最好说明为_________,以节省参数值的传输时间和存储参数的空间。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、一个线性表第一个元素的存储地址是100,每个元素的长度
为2,则第5 个元素的地址是( B )。

(A)110 (B)108(C)100 (D)120
2、向一个有127 个元素的顺序表中插入一个新元素并保持原来
顺序不变,平均要移动(C)个元素。

(A)64(B)63 (C)63.5(D)7
3、顺序存储结构是通过__B______ 表示元素之间的关系的
(A) 逻辑上相邻(B) 物理上地址相邻(C) 指针(D) 下标
4、对于顺序存储的线性表,访问结点和删除结点的时间复杂度分别为(A)。

(A) O(1)、O(n)(B) O(1)、O(1)
(C) O(n)、O(1)(D) O(n)、O(n)
1、线性表采用链式存储结构时,其地址( )。

(A) 必须是连续的(B) 部分地址必须是连续的
(C) 一定是不连续的(D) 连续与否均可以
2、在一个单链表中,若p 所指结点不是最后结点,在p 之后插
入s 所指结点,则执行( )。

(A)s->next=p;p->next=s; (B)s->next=p->next;p->next=s;
(C)s->next=p->next;p=s; (D)p->next=s;s->next=p;
3、在一个单链表中,若删除p 所指结点的后续结点,则执行( )
(A)p->next=p->next->next;
(B)p=p->next; p->next=p->next->next;
(C)p->next=p->next;
(D)p =p->next->next;
1、若入栈序列是a, b, c, d, e,则不可能的出栈序列是()。

(A)edcba(B)decba(C)dceab (D)abcde
2、判定一个栈ST(最多元素为m0) 为空的条件是()。

(A)ST.top != ST.base (B)ST.top == ST.base
(C)ST.top != ST.base +m0 (D)ST.top == ST.base+ m0
3、判定一个栈ST(最多元素为m0) 为满的条件是()。

(A)ST.top != ST.base (B)ST.top == ST.base
(C)ST.top != ST.base +m0 (D)ST.top == ST.base+ m0
1、栈的特点是(),队列的特点是()。

2、线性表、栈和队列都是()结构,可以在线性表的()
位置插入和删除元素,栈只能在()插入和删除元素,
队列只能在()插入元素和()删除元素。

3、设栈S 和队列Q 的初始状态皆为空,元素a1, a2, a3, a4, a5
和a6 依次通过一个栈,一个元素出栈后即进入队列Q,若
6 个元素出队列的顺序是a3, a5, a4, a6, a2, a1 则栈S 至少应
该容纳( ) 个元素。

4、若队列的入队序列是1, 2, 3, 4,则出队序列是()。

(A)4,3,2,1(B)1,2,3,4(C)1,4,3,2(D)3,2,4,1
1、循环队列用数组A[0, m-1] 存放其元素值,已知其头尾指
针分别是front 和rear 则当前队列中的元素个数是()。

(A) (rear-front+m)%m (B) rear-front+1
(C) rear-front-1 (D) rear-front
2、以数组Q[0… m-1] 存放循环队列中的元素,变量rear
和qulen 分别指示循环队列中队尾元素的实际位置和当前
队列中元素的个数,队列第一个元素的实际位置是()。

(A) rear-qulen(B) rear-qulen+m
(C) m-qulen(D) 1+(rear+m-qulen) % m
1二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,
这种说法()(A)正确(B)错误
2由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,
这种说法()(A)正确(B)错误
3已知某二叉树的后序遍历序列是dabec。

中序遍历序列是debac,它
的前序遍历序列是()。

(A)acbed (B)decab(C)deabc (D)cedba
4某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访
问顺序是dgbaechf,则其后序遍历的结点访问顺序是()。

(A)bdgcefha (B)gdbecfha (C)bdgaechf (D)gdbehfca
5在一非空二叉树的中序遍历序列中,根结点的右边()
(A)只有右子树上的所有结点(B)只有右子树上的部分结点
(C)只有左子树上的部分结点(D)只有左子树上的所有结点
6任一二叉树的叶子结点在先、中和后序遍历序列中的相对次序( ) 。

(A)不发生改变(B)发生改变(C)不能确定(D)以上都不对
1. 在线索化二叉树中,t 所指结点没有左子树的充要条件是()
(A)t -> lchild=NULL (B)t -> ltag=1(C)t -> ltag=1且t -> lchild=NULL
(D)以上都不对
2.二叉树按某种顺序线索化后,任一结点均有指向其前趋和后继的线索,这种说法()(A)正确(B)错误
1、一棵哈夫曼树有19 个结点,则其叶子结点的个数是( )。

2、有七个带权结点,其权值分别为3, 7, 8, 2, 6, 10, 14,试以它们为叶结点构造
一棵哈夫曼树(请按照每个结点的左子树根结点的权小于等于右子树根结点
的权的次序构造),并计算出带权路径长度WPL及该树的结点总数。

3、有一电文共使用五种字符a, b, c, d, e,其出现频率依次为4, 7, 5, 2, 9。

(1)、试画出对应的编码哈夫曼树(要求左子树根结点的权小于等于右子树根结点权)。

(2)、求出每个字符的哈夫曼编码。

(3)、求出传送电文的总长度。

(4)、并译出编码系列11000111000101011的相应电文。

4、对于给定的一组权值W={1, 3, 7, 8, 14, 20, 28} 建立哈夫曼树,并计算带权路径长度。

5、假定有7 个字符a, b, c, d, e, f, g 出现的概率分别为0.07, 0.09, 0.14, 0.23, 0.44, 0.58, 0.77,求这7 个字符的哈夫曼编码。

1. n 个顶点的连通图至少( ) 条边。

2. 在一个无向图的邻接表中,若表结点的个数是m,则图中边的条数是( ) 条。

3. 分别用普里姆和克鲁斯卡尔算法构造下图所示网络的最小生成树。

4. 分别求出图 4
从 v2 出发按深度优先搜索和广度优先搜索算法遍历得到的顶点序列(假设图的存储
结构采用邻接矩阵表示)。

5. 已知一个有向图的邻接表如图 5 所示,求出根据深度优先搜索算法从顶点v 出发遍历得到的顶点序列。

选择题
1. 在一个图中,所有顶点的度数之和等于所有边数的 ( ) 倍。

(A )1/2 (B )1 (C )2 (D )4
2. 在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的 ( ) 倍。

(A )1/2 (B )1 (C )2 (D )4
3. 一个有 n 个顶点的无向图最多有 ( ) 条边。

(A )n (B )n(n -1) (C )n(n-1)/2 (D )2n
4. 具有 4 个顶点的无向完全图有 ( ) 条边。

(A )6 (B )12 (C )16 (D )20
5. 具有 6 个顶点的无向图至少应有 ( ) 条边才能确保是一个连通图。

(A )5 (B )6 (C )7 (D )8
6. 在一个具有 n 个顶点的无向图中,要连通全部顶点至少需要 ( ) 条边。

(A )n (B )n + 1 (C )n – 1 (D )n/2
7对于一个具有 n 个顶点的无向图,若采用邻接矩阵表示,则该矩阵的大小
为 ( )。

(A )n (B )(n-1)2 (C )n -1 (D )n2
8对于一个具有 n 个顶点和 e 条边的无向图,若采用邻接表表示,则表头数
组的大小为 ( ),所有邻接表中的结点总数是 ( )。

①(A )n (B )n+1 (C )n-1 (D )n+e
②(A )e/2 (B )e (C )2e (D )n+e
9图的深度优先遍历算法类似于树的( )。

(A )先根遍历 (B )后根遍历 (C )按层遍历
10图的广度优先遍历算法类似于树的( )。

(A )先根遍历 (B )后根遍历 (C )按层遍历
V 1 V 2 V 3 V 4 V 5 7
6 9 8
6 4 4 2。

相关文档
最新文档