2016年暨南大学数据结构考研试题答案
暨南大学软件工程830数据结构2016年真题

(2)求各字符赫夫曼编码的算法。(7分)
考试科目:数据结构共5页,第5页
1.已知二叉树的前序遍历序列是AEFBGCDHIKJ,中序遍历序列是EFAGBCHKIJD,求解下列问题:
(1)画出此二叉树。(4分)
(2)将该二叉树转换成森林。(4分)
2.设有一组关键字(71,23,73,14,55,89,33,43,48),采用哈希函数:H(key)=key %10,采
用开放地址的二次探测再散列方法解决冲突,试在散列地址空间中对该关键字序列(按从左
else
return Find((10), item );
}
}
六.编写算法(25分)
1.设有一组初始记录关键字序列(K1,K2,…,Kn),要求设计一个算法能够在O(n)的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于Ki,右半部分的每个关键字均大于等于Ki。(10分)
2.设有一整型数组w保存n个字符的权值(均大于0),请写出
7.向二叉排序树中插入一个新结点,需要比较的次数可能大于此二叉树的高度h。()
8.向一棵B_树插入元素的过程中,若最终引起树根结点的分裂,则新树高度为原树的高度加1。()
9.无向图的邻接矩阵一定是对称阵。( )
10.对小根堆进行层次遍历可以得到一个有序序列。()
考试科目:数据结构共5页,第2页
四.简答题(45分)
{
BiThrNode *p;
p=(3)
while(p!=T){ //空树或遍历结束时p==T
while(p->LTag==Link)(4)
if(!Visit(p->data)) return ERROR;
02331 - 2016年04月 - 数据结构试题及答案

2016年4月高等教育自学考试全国统一命题考试数据结构试卷(课程代码02331)注意事项:1.本试卷分为两部分,第一部分为选择题,第二部分为非选择题。
2.应考者必须按试题顺序在答题卡(纸)指定位置上作答,答在试卷上无效。
3.涂写部分、画图部分必须使用2B铅笔书写部分必须使用黑色字迹签字笔。
第一部分选择题一、单项选择题(本大题共15小题,每小题2分,共30分)1.下列选项中,属于非线性数据结构的是()A.队列B.栈C.二叉排序树D.线性表2.瑞士计算机科学家沃思教授曾指出:算法+数据结构=程序.这里的数据结构指的是()A.数据的逻辑结构和存储结构B.数据的线性结构和非线性结构C.数据的紧凑结构和非紧凑结构D.数据的顺序结构和链式结构3.线性表顺序存储时,逻辑上相邻的两个数据元素,其存储地址()A.一定相邻B.一定不相邻C.不一定相邻D.可能不相邻4.数据元素1,2,3,4,5依次入栈,则不可能得到的出栈序列是()A.4,5,3,2,1 B.1,2,3,4,5C.4,3,5,1,2 D.5,4,3,2,15.设顺序表首元素A[0]的存储地址是4000,每个数据元素占5个存储单元,则元素A[20]的起始存储地址是()A.4005 B.4020 C.4100 D.41056.广义表 A=(a,(b,c,(e,f))),函数 head(head(tail(A)))的运算结果是()A.a B.b C.c D.e7.设高度为h的二叉树中,只有度为0和2的结点,则此类二叉树包含的结点数至少是()A.2h B.2h-1 C.2h+1 D.h+18.—棵非空二叉树T的前序遍历和后序遍历序列正好相反,则T一定满足()A.所有结点均无左孩子B.所有结点均无右孩子C.只有一个叶子结点D.是一棵满二叉树9.设图的邻接矩阵A如下所示。
各顶点的度依次是()A.1,2,1,2 B.2,2,1,1 C.3,4,2,3 D.4,4,2,21O.无向图G如题10图所示,从顶点a开始进行深度优先遍历,下列遍历序列中,正确的是()A.a,b,e,c,d,f B.a,c,f,e,d,bC.a,c,b,e,f,d D.a,e,d,f,c,b11.设带权连通图G中含有n(n>1)个顶点,下列关于G的最小生成树T的叙述中,正确的是()A.T中可能含有回路B.T中含有图G的所有边C.T是唯一的,且含有n-1条边D.T可能不唯一,但权一定相等12.若要求对序列进行稳定的排序,则在下列选项中应选择()A.希尔排序B.快速排序C.直接插入排序D.直接选择排序13.下列排序算法中,空间复杂度最差的是()A.归并排序B.希尔排序C.冒泡排序D.堆排序14.下列排序算法中,初始数据有序时,花费的时间反而更多的算法是()A.插入排序B.冒泡排序C.快速排序D.希尔排序15.对线性表L进行二分查找时,要求L必须满足()A.以顺序方式存储B.以顺序方式存储,且数据元素有序C.以链接方式存储D.以链接方式存储,且数据元素有序第二部分非选择题二、填空题(本大题共10小题,每小题2分,共20分)16.下面程序段的时间复杂度是_________。
数据结构习题解答

数据结构习题解答信息工程学院徐燕萍第1章绪论一、基本内容数据、数据元素、数据对象、数据结构、存储结构和数据类型等概念术语的确定含义;抽象数据类型的定义、表示和实现方法;描述算法的类C语言;算法设计的基本要求以及从时间和空间角度分析算法的方法。
二、学习要点1.熟悉各名词、术语的含义,掌握基本概念,特别是数据的逻辑结构和存储结构之间的关系。
分清哪些是逻辑结构的性质,哪些是存储结构的性质。
2.了解抽象数据类型的定义、表示和实现方法。
3.熟悉类C语言的书写规范,特别要注意值调用和引用调用的区别,输入、输出的方式以及错误处理方式。
4.理解算法五个要素的确切含义:①动态有穷性(能执行结束);②确定性(对于相同的输入执行相同的路径);③有输入;④有输出;⑤可行性(用以描述算法的操作都是足够基本的)。
5.掌握计算语句频度和估算算法时间复杂度的方法。
三、基础知识题1.1简述下列术语:数据、数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。
答:数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。
数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
数据对象是性质相同的数据元素的集合,是数据的一个子集。
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
存储结构是数据结构在计算机中的表示(又称映像)。
数据类型是一个值的集合和定义在这个值集上的一组操作的总称。
抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。
1.2试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。
答:简单地说,数据结构定义了一组按某些关系结合在一起的数组元素。
数据类型不仅定义了一组带结构的数据元素,而且还在其上定义了一组操作。
程序设计语言中的数据类型是一个值的集合和定义在这个值集上的一组操作的总称。
而抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。
数据结构暨南大学期末试卷试题

数据结构暨南大学期末试卷试题一、判断题(共10分)1. 当静态链表采用数组实现时,插入与删除操作仍需移动元素。
2. 栈也是一种线性表,也同样有顺序存储结构和链式存储结构。
3. 二叉树的三种遍历算法区别仅在于对树根、左右子树访问先后顺序的不同。
4. 邻接表是图的一种顺序存储结构。
5. 二叉树就是度数为2的树。
6. 在哈希表中勿需比较就可找到记录在表中的位置。
7. 线性表的链式存储结构既方便其存取操作,也方便其插入与删除操作。
8. 顺序存储结构既适合于完全二叉树,也同样适合于一般的二叉树。
9.一个算法是正确的、高效率的,还不能说它就是一个“好”的算法。
10. 快速排序与堆排序的平均时间复杂度相同。
二、概念填空(共20分,每题2分)1.对顺序存储结构的线性表,设表长为La;在各元素插入为等概率条件下,插入一个数据元素需平均移动表中元素_______ 个;在最坏情况下需移动表中元素_______ 个。
2.从逻辑角度看,四种基本的数据结构可分为__________、___________、____________和____________;两种存储结构为_____________和_________________。
3.一个深度为,的满k(k>2)叉树,其第i层(若存在)有________个结点;编号为p(p>1)的结点其父结点(父结点为非根结点)编号是___________________。
4.具有n个结点的完全二叉树的深度为____________;编号为p(<n)的结点其右孩子(若存在)结点编号是___________。
5.堆栈被称为一个_____________的线性表;队列被称为一个_____________的线性表。
6.静态查找表的查找方法主要有:有序表查找及________________________;在n个记录中进行折半查找,当查找不成功时,与关键字比较次数最多为_____________________。
数据结构习题参考答案与解析

习题1 参考答案1至8题答案略。
9.(1)【解】该逻辑结构为线性结构,其图形表示如下:(2)【解】该逻辑结构为树型结构,其图形表示如下:(3)【解】该逻辑结构为图型结构,其图形表示如下:(4)【解】该逻辑结构为线性结构,其图形表示如下:10.【解】该图书库存管理系统所要处理的数据对象为图书,所以该问题中涉及的数据元素为图书,设数据元素类型为bookType 类型。
每个数据元素应包含的数据项有图书编号、书名、作者、出版社、出版日期等。
可用一个表格(如下表)的形式表示图书间的逻辑关系,即该问题数学模型可采用简单的线性结构来表示。
根据问题需求功能目标,此模型的所需的主要处理操作有插入、删除、查找和修改等基本操作。
所以,现用抽象数据类型bookList 表示问题模型,其逻辑结构与基本操作的定义如下: (1)逻辑结构bookList=( D, {r} )D={b i | b i 为bookType 类型的元素,i=1,2,3, ....., n ,n ≥0} r ={ <bk i ,b i+1>| i=1,2,…, n -1, n ≥0 } (2)基本操作 ①初始化操作函数:InitBookList(&BL)。
……初始条件:图书表BL 不存在。
操作结果:构造一个空的图书表BL 。
②求图书表长度操作函数:bookListLength(BL)。
初始条件:图书表BL 已存在。
操作结果:返回图书表BL 中所包含的数据元素(图书)的个数。
③取图书表中元素操作函数:getBook(BL, i, &b)。
初始条件:图书表BL 已存在,且1≤i ≤bookListLength(BL)。
操作结果:用b 返回图书表BL 中的第i 个数据元素的值。
④按编号查找操作函数:locateById(BL, id)。
初始条件:图书表BL 已存在,id 是给定的一个图书编号。
操作结果:返回图书表BL 中图书编号为id 的数据元素的位序,若这样的数据元素不存在,则返回0。
《数据结构》考研辅导练习题答案

第1章绪论参考答案四、应用题1.(1)数据的逻辑结构反映数据元素之间的逻辑关系(即数据元素之间的关联方式或“邻接关系”),数据的存储结构是数据结构在计算机中的表示,包括数据元素的表示及其关系的表示。
数据的运算是对数据定义的一组操作,运算是定义在逻辑结构上的,和存储结构无关,而运算的实现则是依赖于存储结构。
(2)逻辑结构相同但存储不同,可以是不同的数据结构。
例如,线性表的逻辑结构属于线性结构,采用顺序存储结构为顺序表,而采用链式存储结构称为线性链表。
(3)栈和队列的逻辑结构相同,其存储表示也可相同(顺序存储和链式存储),但由于其运算集合不同而成为不同的数据结构。
(4)数据结构的评价非常复杂,可以考虑两个方面,一是所选数据结构是否准确、完整的刻划了问题的基本特征;二是是否容易实现(如对数据分解是否恰当;逻辑结构的选择是否适合于运算的功能,是否有利于运算的实现;基本运算的选择是否恰当。
)2.评价好的算法有四个方面。
一是算法的正确性;二是算法的易读性;三是算法的健壮性;四是算法的时空效率(运行)。
3.略4.“数据结构”这一术语有两种含义,一是作为一门课程的名称;二是作为一个科学的概念。
作为科学概念,目前尚无公认定义,一般认为,讨论数据结构要包括三个方面,一是数据的逻辑结构,二是数据的存储结构,三是对数据进行的操作(运算)。
而数据类型是值的集合和操作的集合,可以看作是已实现了的数据结构,后者是前者的一种简化情况。
5.(1)顺序存储方式。
数据元素顺序存放,每个存储结点只含一个元素。
存储位置反映数据元素间的逻辑关系。
存储密度大,但有些操作(如插入、删除)效率较差。
(2)链式存储方式。
每个存储结点除包含数据元素信息外还包含一组(至少一个)指针。
指针反映数据元素间的逻辑关系。
这种方式不要求存储空间连续,便于动态操作(如插入、删除等),但存储空间开销大(用于指针),另外不能折半查找等。
(3)索引存储方式。
除数据元素存储在一地址连续的内存空间外,尚需建立一个索引表,索引表中索引指示存储结点的存储位置(下标)或存储区间端点(下标),兼有静态和动态特性。
自考《数据结构》真题和答案

2016年10月高等教育自学考试全国统一命题考试数据结构试卷(课程代码02331)本试卷共7页,满分l00分,考试时间l50分钟。
考生答题注意事项:1.本卷所有试题必须在答题卡上作答。
答在试卷上无效,试卷空白处和背面均可作草稿纸。
2.第一部分为选择题。
必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑。
3.第二部分为非选择题。
毖须注明大、小题号,使用0.5毫米黑色字迹签字笔作答。
4.合理安排答题空间,超出答题区域无效。
第一部分选择题(共30分)一、单项选择题(本大题共l5小题,每小题2分,共30分>在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题卡”的相应代码涂黑。
错涂、多涂或未涂均无分。
1.下列选项中,不属于线性结构特征的是A.数据元素之间存在线性关系 B.结构中只有一个开始结点C.结构中只有一个终端结点 D.每个结点都仅有一个直接前趋2.设l7个元素的顺序表中,若将第个元素e移动到第个位置,不改变除e外其他元素之间的相对次序,则需移动的表中元素个数是3.若用一个大小为7的数组作为循环队列的存储结构,且当前rew和盘0nt的值分别为2和4,在此之前的操作是从队列中删除了一个元素及加入两个元素,请问这3个操作之前rear和矗0nt的值分别是A.0和l B.0和3 C.3和6 D.4和54.已知广义表LS=(((a)),((b,(c)),(d,(e,f))),0),LS的长度是A.2 B.3 C.4 D. 55.一棵完全二叉树T的全部k个叶结点都在同一层中且每个分支结点都有两个孩子结点。
于中包含的结点数是A.k B. 2k-1 C.k2 D.2k-16.如果某二叉树的前序遍历序列为abced,中序遍历序列为cebda,则该二叉树的后序遍历序列是A.cedba B.decba C.ecdba D.ecbad7.一个森林有m棵树,顶点总数为n,则森林中含有的总边数是A.m B. n-l C.n-m D.n+m8.设图的邻接矩阵A如下所示。
2016年考研核心题型【数据结构部分】【第7章 排序】

温馨提示:快速排序主要考查两点:1、快速排序算法的特点;2、快速排序算法实现; 3、快速排序的过程或者一趟排序的结果。本考点历年考查很多,是复习的重点,请同学们 务必掌握。
接插入排序每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍
然有序。
折半插入排序是对直接插入排序算法的一种改进。由于前半部分为已排好序的数列,
这样我们可以不用按顺序依次寻找插入点,而是采用折半查找的方法来加快寻找插入点的
速度。折半查找的方法来寻找插入位置,可以减少比较次数。但不影响排序的趟数(仍然
本题只剩下希尔排序了,事实上,本题是利用增量为 d=5、3、1 来对关键字{50 , 26 , 38 , 80 , 70 , 90 , 8 , 30 , 40 , 20 }进行希尔排序。其排序过程如图 7.2 所示。
我方慎重声明,各盈利机构若采用我方资料,必追究法律责任
102
2016 年考研核心考点命题思路解密 数据结构 梦享团队主编
1. 对一待排序序列分别进行折半插入排序和直接插入排序,两者之间可能的不同之处是
(
)。
A. 排序的总趟数
B. 元素的移动次数
C. 使用辅助空间的数量
D. 元素之间的比较次数
【2012 年统考——第 11 题】
【考查内容】直接插入排序和折半插入排序的区别。
【解析】所谓排序算法过程,就是不断的依次将元素插入前面已排好序的序列中。直
一趟冒泡排序结束。
整个排序过程如下图所示。
其过程如图 7.1 所示。
50 40 95 20 15 70 60 45 80
50>40,50和40交换
40 50 95 20 15 70 60 45 80
《暨南大学830数据结构2011-2019年考研真题及答案解析》

暨南大学 2011 年招收攻读硕士学位研究生入学考试试题答案解析................................ 49 暨南大学 2012 年招收攻读硕士学位研究生入学考试试题答案解析................................ 64 暨南大学 2013 年招收攻读硕士学位研究生入学考试试题答案解析................................ 79 暨南大学 2014 年招收攻读硕士学位研究生入学考试试题答案解析(A 卷)..................... 96 暨南大学 2015 年招收攻读硕士学位研究生入学考试试题答案解析(B 卷)................... 113 暨南大学 2016 年招收攻读硕士学位研究生入学考试试题答案解析(A 卷)................... 130 暨南大学 2017 年招收攻读硕士学位研究生入学考试试题答案解析(A 卷)................... 144
3. 线性表的动态链表存储结构与顺序存储结构相比,优点是( )。
A. 所有的操作算法实现简单
B. 便于随机存取
C. 便于插入与删除
D. 便于节省存储器空间
4.若进栈序列为 1,2,3,4,5,6, 且进栈和出栈可以穿插进行,则可能出现的出
栈序列为( )。
A. 3,2,6,1,4,5
B.5,6,4,2,3,1
五、算法填空, (每空 2 分,共 16 分)
1.下面的算法是一个在元素按值递增排列,并以带头结点的单链表作存储结构的线性表
暨南大学830数据结构2010,2012--2020年考研专业课真题

2020年全国硕士研究生统一入学考试自命题试题B卷********************************************************************************************学科、专业名称:网络空间安全研究方向:网络空间安全083900考试科目名称及代码:数据结构830考生注意:所有答案必须写在答题纸(卷)上,写在本试题上一律不给分。
一、单项选择题(每题2分,共30分)1. 下述关于顺序存储结构优点的说法,哪个是正确的()A. 插入运算方便B. 可方便地用于各种逻辑结构的存储表示C. 存储密度大D. 删除运算方便2. 假设根结点为第1层,深度为h层的二叉树至少有( ) 个结点(h>1);A. 2hB. 2h-1C. 2h+1D. 2h-13. 用单向链表来实现容量为n的堆栈时,链表头指针指向堆栈顶部元素,链表尾指针指向堆栈底部元素,则以下说法错误的是( )A. 入栈操作的复杂度为O(1)B. 出栈操作的复杂度为O(1)C. 删除底部元素的复杂度为O(1)D. 插入一个新的堆栈底部元素复杂度为O(1)4. 以下关于递归算法的论述,不正确的是( )A. 递归算法的代码可读性好B. 递归算法可以提高程序运行效率C. 递归调用层次太深有可能造成堆栈溢出D. 递归调用层次太深会占用大量内存5. 设有字符集合{4,6,3,W,S},将字符序列6W43S中的字符按顺序进入堆栈,出栈可发生在任何时刻。
则以下的出栈序列错误的是()。
A. 64WS3B. 4W36SC. 6W34SD. WS4366. 在管理城市道路交通网络据时,最适合采用()数据结构来对其进行存储。
A.有向图B.无向图C.树D.矩阵7. 具有k个顶点的完全有向图的边数为( )。
A. k(k-1)B. k(k-1)/2C. k2-1D. k2+18. 若线性表最常用的操作是增加或者删除某个元素, 则采用( )存储方式节省时间.A. 单链表B. 双链表C. 单循环链表D. 顺序表9. 由权为6,3,2,8的四个叶子结点构造一个哈夫曼树,该树的带权路径长度为()。
数据结构综合题2016+答案

第4章栈和队列1.设一数列为1,2,3,4,5,6,通过栈操作,要得到顺序为3,2,5,6,4,1和1,5,4,6,2,3的输出序列是否可能,请阐述理由。
答案:(1)3,2,5,6,4,1是可能的,但1,5,4,6,2,3不可能.(2)因为5在4,2,3之前出栈,那么5出栈时,栈内状态为:5,4,3,2。
根据先进后出原则,其次序只能是5,4,3,2,不可能出现5,4,2,3,想出2时,2却被3压在下面,2不能比3先出栈,所以不可能出现1,5,4,6,2,3这种序列.2. 把1、2、3、4依次进栈(栈初始为空),任何时刻(只要栈不空),都可以出(退)栈,试写出所有可能的出栈序列(如1234)。
答案略第6章树3.对数列{3,1,7,4,2,8,5}构造出二叉排序树。
答案:3.假设一棵二叉树的先序序列为ABDEGHJCFI和中序序列为DBGEHJAC FI。
请画出该树。
答案:4.一棵二叉树后序遍历为DECBHGFA ,中序遍历为BDCEAFHG ,能不能唯一的确定一棵二叉树?如果能够,请构造此二叉树,并写出其前序遍历序列。
解答:前序遍历序列:ABCDEFGH5. 设有一组权WG=1,4,9,16,25,36,49,64,81,100,试画出其哈夫曼树,并计算加权的路径长度。
答案:树不唯一,但加权路径长度均为1078WPL=1*7+4*7+9*6+16*5+25*4+36*3+49*3+64*3+81*2+100*2=1078试问:⑴哪个结点是根结点?⑵哪个结点是D的双亲结点? ⑶C 的左右孩子分别是什么? ⑷画出这棵二叉树。
答案:根结点为: A D 的双亲结点: C C 的左右孩子: 空、D7.已知信息为“ABCDBCDBCBDBACB”,(1)请按此信息构造哈夫曼树;(2)计算哈夫曼树的加权路径长度WPL;(3)求出每一字符的最优编码;提示:统计各个字符的出现频率,构造哈夫曼树,算WPL,编码。
(完整版)数据结构试题及答案

(完整版)数据结构试题及答案《数据结构》自考复习思考试题○10一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1. 若将数据结构形式定义为二元组(K,R),其中K是数据元素的有限集合,则R是K上( ) A. 操作的有限集合 B. 映象的有限集合C. 类型的有限集合D. 关系的有限集合2. 在长度为n的顺序表中删除第i个元素(1≤i≤n)时,元素移动的次数为( )A. n-i+1B. iC. i+1D. n-i3. 若不带头结点的单链表的头指针为head,则该链表为空的判定条件是( )A. head==NULLB. head->next==NULLC. head!=NULLD. head->next==head4. 引起循环队列队头位置发生变化的操作是( )A. 出队B. 入队C. 取队头元素D. 取队尾元素5. 若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不.可能出现的出栈序列是( )A. 2,4,3,1,5,6B. 3,2,4,1,6,5C. 4,3,2,1,5,6D. 2,3,5,1,6,46. 字符串通常采用的两种存储方式是( )A. 散列存储和索引存储B. 索引存储和链式存储C. 顺序存储和链式存储D. 散列存储和顺序存储7. 设主串长为n,模式串长为m(m≤n),则在匹配失败情况下,朴素匹配算法进行的无效位移次数为( )A. mB. n-mC. n-m+1D. n8. 二维数组A[12][18]采用列优先的存储方法,若每个元素各占3个存储单元,且第1个元素的地址为150,则元素A[9][7]的地址为( )A. 429B. 432.C. 435D. 4389. 对广义表L=((a,b),(c,d),(e,f))执行操作tail(tail(L))的结果是( )A. (e,f)B. ((e,f))C. (f)D. ( )10. 下列图示的顺序存储结构表示的二叉树是( )11. n个顶点的强连通图中至少含有( )A. n-1条有向边B. n条有向边C. n(n-1)/2条有向边D. n(n-1)条有向边12. 对关键字序列(56,23,78,92,88,67,19,34)进行增量为3的一趟希尔排序的结果为( )A. (19,23,56,34,78,67,88,92)B. (23,56,78,66,88,92,19,34)C. (19,23,34,56,67,78,88,92)D. (19,23,67,56,34,78,92,88)13. 若在9阶B-树中插入关键字引起结点分裂,则该结点在插入前含有的关键字个数为( ) A. 4 B. 5C. 8D. 914. 由同一关键字集合构造的各棵二叉排序树( )A. 其形态不一定相同,但平均查找长度相同B. 其形态不一定相同,平均查找长度也不一定相同C. 其形态均相同,但平均查找长度不一定相同.D. 其形态均相同,平均查找长度也都相同15. ISAM文件和VSAM文件的区别之一是( )A. 前者是索引顺序文件,后者是索引非顺序文件B. 前者只能进行顺序存取,后者只能进行随机存取C. 前者建立静态索引结构,后者建立动态索引结构D. 前者的存储介质是磁盘,后者的存储介质不是磁盘二、填空题(本大题共10小题,每空2分,共20分)16. 数据的逻辑结构在计算机存储器内的表示,称为数据的____________。
考研数据结构习题及参考答案

习题1一、单项选择题1.数据结构是指()。
A.数据元素的组织形式B.数据类型C.数据存储结构D.数据定义2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为()。
A.存储结构B.逻辑结构C.链式存储结构D.顺序存储结构3.树形结构是数据元素之间存在一种()。
A.一对一关系B.多对多关系C.多对一关系D.一对多关系4.设语句x++的时间是单位时间,则以下语句的时间复杂度为()。
for(i=1; i<=n; i++)for(j=i; j<=n; j++)x++;A.O(1)B.O(2n)C.O(n)D.O(3n)5.算法分析的目的是(C),算法分析的两个主要方面是(A)。
(1) A.找出数据结构的合理性 B.研究算法中的输入和输出关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性(2) A.空间复杂度和时间复杂度 B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性6.计算机算法指的是(C),它具备输入,输出和(B)等五个特性。
(1) A.计算方法 B.排序方法C.解决问题的有限运算序列D.调度方法(2) A.可行性,可移植性和可扩充性 B.可行性,确定性和有穷性C.确定性,有穷性和稳定性D.易读性,稳定性和安全性7.数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要()。
A.低B.高C.相同D.不好说8.数据结构作为一门独立的课程出现是在()年。
A.1946B.1953C.1964D.19689.数据结构只是研究数据的逻辑结构和物理结构,这种观点()。
A.正确B.错误C.前半句对,后半句错D.前半句错,后半句对10.计算机内部数据处理的基本单位是()。
A.数据B.数据元素C.数据项D.数据库二、填空题1.数据结构按逻辑结构可分为两大类,分别是___线性结构___和__非线性结构_。
2.数据的逻辑结构有四种基本形态,分别是__集合__、______线性_____、_____图___和______树______。
计算机数据结构考研真题及其答案

第1章绪论一、选择题1. 算法的计算量的大小称为计算的();A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于();A.问题的规模 B. 待处理数据的初态 C. A和B3.计算机算法指的是(),它必须具备()这三个特性;(1)A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法(2)A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性4.一个算法应该是();A.程序 B.问题求解步骤的描述 C.要满足五个基本特性 D.A和C 5. 下面关于算法说法错误的是();A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的6. 下面说法错误的是();(1)算法原地工作的含义是指不需要任何额外的辅助空间;(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法;(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界;(4)同一个算法,实现语言的级别越高,执行效率就越低A.(1) B.(1),(2) C.(1),(4) D.(3)7.从逻辑上可以把数据结构分为()两大类;A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构8.以下与数据的存储结构无关的术语是();A.循环队列 B. 链表 C. 哈希表 D. 栈9.以下数据结构中,哪一个是线性结构();A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串10.以下那一个术语与数据的存储结构无关?();A.栈 B. 哈希表 C. 线索树 D. 双向链表11.在下面的程序段中,对x的赋值语句的频度为();FOR i:=1 TO n DOFOR j:=1 TO n DOx:=x+1;A. O(2n) B.O(n) C.O(n2) D.O(log2n)12.程序段 FOR i:=n-1 DOWNTO 1 DOFOR j:=1 TO i DOIF A[j]>A[j+1]THEN A[j]与A[j+1]对换;其中 n为正整数,则最后一行的语句频度在最坏情况下是();A. O(n)B. O(nlogn)C. O(n3)D. O(n2)13.以下哪个数据结构不是多型数据类型();A.栈 B.广义表 C.有向图 D.字符串14.以下数据结构中,()是非线性数据结构;A.树 B.字符串 C.队 D.栈15. 下列数据中,()是非线性数据结构;A.栈 B. 队列 C. 完全二叉树 D. 堆16.连续存储设计时,存储单元的地址();A.一定连续 B.一定不连续 C.不一定连续 D.部分连续,部分不连续17.以下属于逻辑结构的是();A.顺序表 B. 哈希表 C.有序表 D. 单链表二、判断题1. 数据元素是数据的最小单位。
《数据结构》历年考研真题及解答

《数据结构》考研真题及解答目录2009 年试题 (1)填空题 (1)解答题 (2)2010 年试题 (2)填空题 (2)解答题 (4)2011 年试题 (4)填空题 (4)解答题 (5)2012 年试题 (6)填空题 (6)解答题 (7)2013 年试题 (8)填空题 (8)解答题 (9)2014 年试题 (10)填空题 (10)解答题 (11)2015 年试题 (12)填空题 (12)解答题 (14)2009 年试题填空题1.为解决计算机与打印机之间速度不匹配的问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。
该缓冲区的逻辑结构应该是A.栈B.队列C.树D.图2.设栈 S 和队列 Q 的初始状态均为空,元素 abcdefg 依次进入栈 S。
若每个元素出栈后立即进入队列 Q,且7 个元素出队的顺序是 bdcfeag,则栈 S 的容量至少是A.1 B.2 C.3 D.43.给定二叉树图所示。
设 N 代表二叉树的根,L代表根结点的左子树,R代表根结点的右子树。
若遍历后的结点序列为 3,1,7,5,6,2,4,则其遍历方式是A.LRN B.NRL C.RLN D.RNL4.下列二叉排序树中,满足平衡二叉树定义的是5.已知一棵完全二叉树的第 6 层(设根为第 1 层)有8 个叶结点,则完全二叉树的结点个数最多是A.39 B.52 C.111 D.1196.将森林转换为对应的二叉树,若在二叉树中,结点u 是结点v 的父结点的父结点,则在原来的森林中,u 和v 可能具有的关系是I.父子关系II.兄弟关系III.u 的父结点与v 的父结点是兄弟关系A.只有IIB.I 和IIC.I 和IIID.I、II 和III7.下列关于无向连通图特性的叙述中,正确的是I.所有顶点的度之和为偶数II.边数大于顶点个数减1 III.至少有一个顶点的度为1A.只有IB.只有IIC.I 和IID.I 和III8.下列叙述中,不符合 m 阶B 树定义要求的是A.根节点最多有m 棵子树 B.所有叶结点都在同一层上C.各结点内关键字均升序或降序排列 D.叶结点之间通过指针链接9.已知关键序列 5,8,12,19,28,20,15,22 是小根堆(最小堆),插入关键字 3,调整后得到的小根堆是A.3,5,12,8,28,20,15,22,19B.3,5,12,19,20,15,22,8,28C.3,8,12,5,20,15,22,28,19D.3,12,5,8,28,20,15,22,1910.若数据元素序列 11,12,13,7,8,9,23,4,5 是采用下列排序方法之一得到的第二趟排序后的结果,则该排序算法只能是A.起泡排序 B.插入排序 C.选择排序 D.二路归并排序解答题41.(10 分)带权图(权值非负,表示边连接的两顶点间的距离)的最短路径问题是找出从初始顶点到目标顶点之间的一条最短路径。
830数据结构2010-2016真题答案(有错)

2 010参考答案一、 选择题1 1 1 .B 2.A 3.C 4.A 5.D 6.A 7.B 8.A 9.C 10.C1.B 12.C 13.A 14.C 15.B 16.D 17.D 18.D 19.A 20.A5 解释:线索二叉树中某结点是否有左孩子,不能通过左指针域是否为空来判 断,而要判断左标志是否为 1。
二、 填空题1 2 3 .归并排序。
. 能否将关键字均匀影射到哈希空间上.一端 先进后出有无好的解决冲突的方法4 5 6 7 8 9 . 顺序存储或链式存储 (1+n )/2.从任意节点出发都能访问到整个链表.时间 空间.n-1 n(n-1)/2.2n-1.n n三、 判断题 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 .F.F 非空才成立.F 有向的非强连通图,不成立.T.F 表头没有前驱,表尾没有后序.T.F 先序跟后序不行,中序才行.T.F 不可能0.T1.F2.T3.F4.F5.F四、 应用题1 .逻辑结构是从操作对象抽象出来的数学模型,结构定义中的“关系”描述的 是数据元素之间的逻辑关系;物理结构是数据结构在计算机中的表示(又称 映像),又称存储结构。
物理结构是指数据具体存放在哪个位置,逻辑结构是 指数据跟数据间是怎样联系的2 3.由 AOV 网构造拓扑序列的拓扑排序算法主要是循环执行以下两步,直到不存 在入度为 0的顶点为止。
(1) 选择一个入度为 0的顶点并输出之;(2) 从网 中删除此顶点及所有出边。
拓扑序列 1:abcdef 拓扑序列 2:adbcef.二叉树图如下:4 5 .略。
已经不纳入考纲.哈夫曼编码问题编码: 3: 000020: 10 10: 0001 22: 11 18: 001 37: 016.二叉排序树问题比根节点小的往左子树插,大的往右子树插。
图如下:删除50有两种做法:《数据结构》中的解析这里我用第二种做法:五.算法设计题1 & .算法填空(L.elem[i-1]) L.length-1 ++p *p L.length-1;2. 设计算法: 输入 n 个元素的值 创建带头结点的单链线性表 L 。
数据结构与算法习题含参考答案

数据结构与算法习题含参考答案一、单选题(共100题,每题1分,共100分)1、要为 Word 2010 格式的论文添加索引,如果索引项已经以表格形式保存在另一个 Word文档中,最快捷的操作方法是:A、在 Word 格式论文中,逐一标记索引项,然后插入索引B、直接将以表格形式保存在另一个 Word 文档中的索引项复制到 Word 格式论文中C、在 Word 格式论文中,使用自动插入索引功能,从另外保存 Word 索引项的文件中插D、在 Word 格式论文中,使用自动标记功能批量标记索引项,然后插入索引正确答案:D2、下面不属于计算机软件构成要素的是A、文档B、程序C、数据D、开发方法正确答案:D3、JAVA 属于:A、操作系统B、办公软件C、数据库系统D、计算机语言正确答案:D4、在 PowerPoint 演示文稿中,不可以使用的对象是:A、图片B、超链接C、视频D、书签第 6 组正确答案:D5、下列叙述中正确的是A、软件过程是软件开发过程和软件维护过程B、软件过程是软件开发过程C、软件过程是把输入转化为输出的一组彼此相关的资源和活动D、软件过程是软件维护过程正确答案:C6、在 Word 中,不能作为文本转换为表格的分隔符的是:A、@B、制表符C、段落标记D、##正确答案:D7、某企业为了建设一个可供客户在互联网上浏览的网站,需要申请一个:A、密码B、门牌号C、域名D、邮编正确答案:C8、面向对象方法中,将数据和操作置于对象的统一体中的实现方式是A、隐藏第 42 组B、抽象C、结合D、封装正确答案:D9、下面属于整数类 I 实例的是A、-919B、0.919C、919E+3D、919D-2正确答案:A10、定义课程的关系模式如下:Course (C#, Cn, Cr,prC1#, prC2#)(其属性分别为课程号、课程名、学分、先修课程号 1和先修课程号 2),并且不同课程可以同名,则该关系最高是A、BCNFB、2NFC、1NFD、3NF正确答案:A11、循环队列的存储空间为 Q(1:100),初始状态为 front=rear=100。
暨南大学_830数据结构2010--2017_考研真题/硕士研究生入学考试试题

C.广度优先遍历算法D.深度优先遍算法
19.通过一趟排序就能从整个记录序列中选择出具有最大(或最小)关键字的记录,这种排序方法是( )。
A.堆排序B.快速排序C.直接插入排序D.归并排序
20.设单链表中指针p指着结点A,若要删除A之后的结点(若存在),则需要修改指针的操作为( )。
13.在一个有向图的邻接表或逆邻接表中,如果某个顶点的链表为空,则该顶点的度一定为零。()
14.在n个顶点的无向图中,若边数>n-1,则该图必是连通图。()
15.一颗满二叉树同时又是一颗平衡树。()
四.应用题(35分)
A. p->next=p->next->next B. p=p->next
C. p=p->next->next D. p->next=p
二.填空题(每空2分,共30分)
1.在堆排序,希尔排序,快速排序,归并排序算法中,占用辅助空间最多的是。
2.在散列表(hash)查找中,评判一个散列函数优劣的两个主要条件是:
A.单链表B.双链表C.单循环链表D.顺序表
6.线性表的链接实现有利于( )运算
A.插入B.读表元素C .查找D.定位
7.设连通图G的顶点数为n,则G的生成树的边数为( )
A. n B. n-1 C.2n D. 2n-1
8.从一个长度为n的顺序表中删除第i个元素(1≤i≤n)时,需向前移动()个元素。
A.n-i B.n-i+1 C.n-i-1 D. i
9.若有一个栈的输入序列是1,2,3,…,n,输出序列的第一个元素是n,则第i个输出元素是()
A.n-i B.n-i-1 C.n-i+1 D.不确定
(完整版)数据结构课后习题答案

第1章绪论1 •简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。
答案:数据:是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称。
如数学计算中用到的整数和实数,文本编辑所用到的字符串,多媒体程序处理的图形、图像、声音、动画等通过特殊编码定义后的数据。
数据元素:是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。
在有些情况下,数据元素也称为元素、结点、记录等。
数据元素用于完整地描述一个对象,如一个学生记录,树中棋盘的一个格局(状态)、图中的一个顶点等。
数据项:是组成数据元素的、有独立含义的、不可分割的最小单位。
例如,学生基本信息表中的学号、姓名、性别等都是数据项。
数据对象:是性质相同的数据元素的集合,是数据的一个子集。
例如:整数数据对象是集合N={0,士1,士2,…},字母字符数据对象是集合C={ ‘ A', ‘ B…,‘ Z,‘ a'b ',…,‘ z ' },学生基本信息表也可是一个数据对象。
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。
换句话说,数据结构是带“结构”的数据元素的集合,“结构”就是指数据元素之间存在的关系。
逻辑结构:从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。
因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。
存储结构:数据对象在计算机中的存储表示,也称为物理结构。
抽象数据类型:由用户定义的,表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称。
具体包括三部分:数据对象、数据对象上关系的集合和对数据对象的基本操作的集合。
2 •试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。
答案:例如有一张学生基本信息表,包括学生的学号、姓名、性别、籍贯、专业等。
每个学生基本信息记录对应一个数据元素,学生记录按顺序号排列,形成了学生基本信息记录的线性序列。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
void traverse(Tree T,int deepth,int &ans){//递归遍历二叉树,累加计算带权路径长度
if(T == NULL) return;
if(T->lchild == NULL && T->rchild == NULL){
ans += T->weight*deepth;
7. X
8. √
9. √
10. X
四、
简答题
1. (1)画出二叉树如下:
(2)将该数转换为森林得:
2. 画出散列之后的 hash 表得:
0
1
48
71
2
3
4
5
6
7
8
9
23
73
14
55
33
43
89
成功查找的平均查找长度为:(1+1+2+2+2+1+5+6+3)/7=23/7
3. 平衡二叉树构造过程如下:
五、
算法填空
1. (1)p->next=L->next
(2)L->next=p
2.
(3)T->lchild
(4)p=p->lchild
(5)p->rchild!=T
(6)p=p->rchild
(7)p=p->rchild
3. (8)T==NULL
(9)T->lchid
(10)T->rchild
六、编写算法
a[low]=a[high];
while(low<high&&a[low]<key])
low++;
a[high]=a[low];
}
a[low]=p;
}
2. (1)构建 Huffman 树的代码如下:
#include <iostream>
#include <cstdlib>
using namespace std;
int min,second_min;
min = 0;
for(int k = 0; k < length; k++){
if(T[k]->weight < T[min]->weight){
min = k;
}
}
if(min == 0){
second_min = 1;
}else{
second_min = 0;
//在节点数组中删除原节点 j
for(int k = j-1; k < length-1; k++){
T[k] = T[k+1];
}
length--;
//将合并后的节点存储起来
T[length++] = temp;
}
void findMin(Tree* T,int &length, int &i, int &j){//寻找权值最小的两个节点
Tree t[n];
int length = n;
for(int i = 0; i < n; i++){
t[i] = (Tree)malloc(sizeof(TreeNode));
cin >> t[i]->weight;
t[i]->lchild = NULL;
t[i]->rchild = NULL;
typedef struct BinTreeNode{
int weight;
BinTreeNode *lchild;
BinTreeNode *rchild;
}TreeNode,*Tree;
void mergeTreeNode(Tree* T, int &length, int i, int j);//合并树的节点
4.(1)邻接表如下:
(2)按克鲁斯卡尔(Kruskal)算法求其最小生成树,其过程如下:
5. (1)若采用 shell 排序,第一趟结构为:
(142,111,123,65,102,879,572,434,543,242,811,453)。
(2)初始堆为:
初始堆第一趟排序的结果为:(142,543,123,65,453,879,572,434,111,242,811,102)。
}
while(length>1){//数组中节点个数大于 1 时循环
int i,j;
findMin(t,length,i,j);
mergeTreeNode(t,length,i,j);
}
int ans = 0;
traverse(t[0],0,ans);
cout << endl;
cout << "ans=" << ans << endl;
temp->weight = T[i]->weight + T[j]->weight;
temp->lchild = T[i];
temp->rchild = T[j];
//在节点数组中删除原节点 i
for(int k ++){
T[k] = T[k+1];
}
length--;
return 0;
}
void mergeTreeNode(Tree* T, int &length, int i, int j){//合并树的节点
if(length <= 1)
return;
//生成合并后的节点
Tree temp;
temp = (Tree)malloc(sizeof(TreeNode));
}
traverse(T->lchild,deepth+1,ans);
traverse(T->rchild,deepth+1,ans);
}
(2)在求得 Huffman 树的情况下,我们可以采用中序遍历非递归,当遇到叶子结点的时候,我们遍
历栈中的内容,即为该叶子结点的 Huffman 编码。
void findMin(Tree* T,int &length, int &i, int &j);//寻找权值最小的两个节点
void traverse(Tree T,int deepth,int &ans);//递归遍历二叉树,累加计算带权路径长度
int main(void){
int n;
cin >> n;
1. 算法思想:基于快速排序
//假设关键字都是存储在 a[]数组中
void division(int a[],int n,int key){
int low=0,high=n-1;
int p=a[low]
while(low<=high){
while(low<high&&a[high]>=key])
high--;
一、
选择题
1. B
【解答】线索二叉树的构成
2. B
3. A
4. C
5. A
6. 1200
【解答】因为是按照行优先次序存储,根据规则,可得:
A[5,5]的地址为:1000+[5*(6+1)+5]*5=1200
7. A
【解答】结点数最小的情况是:前 n-1 层都是满的,第 n 层就一个节点
8. B
9. C
}
for(int k = 0; k < length; k++){
if(k!=min && T[k]->weight < T[second_min]->weight){
second_min = k;
}
}
i = min > second_min ? second_min:min;
j = min > second_min ? min:second_min;
10. D
11. D
12. A
【解答】无向图没有方向,所以相应的邻接矩阵是对称的
13. D
14. C
15. A
二、
填空题
1. n-i
2. (SQ.front+1)%(m+1)
3. p->next=q->next
free(q)
4. (n+1)
5. 89
6. O(log2 )
O(nlog2 )
7. d
8. (1,4,2,3)
三、
判断题
1. X
【解答】在 n 个结点的无向图中,若该图是连通图,则其边数大于等于 n-1,
在 n 个结点的无向图中,若边数大于(n-2)(n-1)/2,则该图必是连通图。
2. √
3. X
4. √
5. X
【解答】数据元素是数据的基本单位
6. X
【解答】Prim 算法适用于求解边稠密的图的最小生成树