中南大学数据结构与算法

合集下载

中南大学复试科目

中南大学复试科目
081901采矿工程
采矿专业综合
《金属矿山地下开采》解世俊,冶金工业出版社
081903安全技术及工程
安全专业综合
《企业安全管理知识问答》李孜军、吴超编,中国劳动社会保障业出版社2004
《公共安全知识读本》吴超、吴宗之编,化学工业出版社2006
081922安全管理工程
081921地下空间资源科学与工程
自动控制原理(25%)
《自动控制原理》胡寿松,国防工业出版社
055资源与安全工程学院
020106人口、资源与环境经济学
人口、资源专业综合
《矿业经济学》,陈建宏,中南大学出版社
080104工程力学
工程力学专业综合
081401岩土工程
岩土工程专业综合
《岩石力学与工程》蔡美峰,科学出版社
《土力学与地基基础》王雅丽,重庆大学出版社
②《轨道工程》陈秀方主编,中国建筑工业出版社,2005年
③《路基路面工程》(第二版)邓学均编,人民交通出版社,2006年11月
082322城市轨道交通工程
050地学与环境工程学院
081803地质工程
土力学
土力学与地基基础
081803地质工程
钻探工程
钻探与钻井工程
070503地图学与地理信息系统
GIS专业综合
047软件学院
081280软件工程
《软件工程》
《现代软件工程》,陈松乔主编,清华大学出版社
/panda/多年以后,你未娶,我未嫁,我就考虑下嫁给你。048土木建筑学院
080102固体力学
工程力学
①《工程力学》单辉祖、谢传锋合编,高等教育出版社,2004
②《工程力学》陈长征等编,科学出版社,2002
③《结构力学》李廉锟主编,高等教育出版社

中南大学数据结构与算法第7章图课后作业答案分解

中南大学数据结构与算法第7章图课后作业答案分解

第7章图(基础知识)习题练习答案7.1 在图7.23所示的各无向图中:(1)找出所有的简单环。

(2)哪些图是连通图?对非连通图给出其连通分量。

(3)哪些图是自由树(或森林)?答:(1)所有的简单环:(同一个环可以任一顶点作为起点)(a)1231(b)无(c)1231、2342、12341(d)无(2)连通图:(a)、(c)、(d)是连通图,(b)不是连通图,因为从1到2没有路径。

具体连通分量为:(3)自由树(森林):自由树是指没有确定根的树,无回路的连通图称为自由树:(a)不是自由树,因为有回路。

(b)是自由森林,其两个连通分量为两棵自由树。

(c)不是自由树。

(d)是自由树。

7.2 在图7.24(下图)所示的有向图中:(1) 该图是强连通的吗? 若不是,则给出其强连通分量。

(2) 请给出所有的简单路径及有向环。

(3) 请给出每个顶点的度,入度和出度。

(4) 请给出其邻接表、邻接矩阵及逆邻接表。

答:(1)该图是强连通的,所谓强连通是指有向图中任意顶点都存在到其他各顶点的路径。

(2)简单路径是指在一条路径上只有起点和终点可以相同的路径:有v1v2、v2v3、v3v1、v1v4、v4v3、v1v2v3、v2v3v1、v3v1v2、v1v4v3、v4v3v1、v3v1v4、另包括所有有向环,有向环如下:v1v2v3v1、v1v4v3v1(这两个有向环可以任一顶点作为起点和终点)(3)每个顶点的度、入度和出度:D(v1)=3ID(v1)=1OD(v1)=2D(v2)=2 ID(v2)=1OD(v2)=1D(v3)=3 ID(v3)=2OD(v3)=1D(v4)=2 ID(v4)=1OD(v4)=1(4)邻接表:(注意边表中邻接点域的值是顶点的序号,这里顶点的序号是顶点的下标值-1)vertex firstedge next┌─┬─┐┌─┬─┐┌─┬─┐0│v1│─→│ 1│─→│ 3│∧│├─┼─┤├─┼─┤└─┴─┘1│v2│─→│ 2│∧│├─┼─┤├─┼─┤2│v3│─→│ 0│∧│├─┼─┤├─┼─┤3│v4│─→│ 2│∧│└─┴─┘└─┴─┘逆邻接表:┌─┬─┐┌─┬─┐0│v1│─→│ 2│∧│├─┼─┤├─┼─┤1│v2│─→│ 0│∧│├─┼─┤├─┼─┤┌─┬─┐2│v3│─→│ 1│─→│ 3│∧│├─┼─┤├─┼─┤└─┴─┘3│v4│─→│ 0│∧│└─┴─┘└─┴─┘邻接矩阵:0 1 0 10 0 1 01 0 0 00 0 1 07.3 假设图的顶点是A,B...,请根据下述的邻接矩阵画出相应的无向图或有向图。

数据结构与算法分析c语言描述中文答案

数据结构与算法分析c语言描述中文答案

数据结构与算法分析c语言描述中文答案一、引言数据结构与算法是计算机科学中非常重要的基础知识,它们为解决实际问题提供了有效的工具和方法。

本文将以C语言描述中文的方式,介绍数据结构与算法分析的基本概念和原理。

二、数据结构1. 数组数组是在内存中连续存储相同类型的数据元素的集合。

在C语言中,可以通过定义数组类型、声明数组变量以及对数组进行操作来实现。

2. 链表链表是一种动态数据结构,它由一系列的节点组成,每个节点包含了数据和一个指向下一个节点的指针。

链表可以是单链表、双链表或循环链表等多种形式。

3. 栈栈是一种遵循“先进后出”(Last-In-First-Out,LIFO)原则的数据结构。

在C语言中,可以通过数组或链表实现栈,同时实现入栈和出栈操作。

4. 队列队列是一种遵循“先进先出”(First-In-First-Out,FIFO)原则的数据结构。

在C语言中,可以通过数组或链表实现队列,同时实现入队和出队操作。

5. 树树是一种非线性的数据结构,它由节点和边组成。

每个节点可以有多个子节点,其中一个节点被称为根节点。

在C语言中,可以通过定义结构体和指针的方式来实现树的表示和操作。

6. 图图是由顶点和边组成的数据结构,它可以用来表示各种实际问题,如社交网络、路网等。

在C语言中,可以通过邻接矩阵或邻接表的方式来表示图,并实现图的遍历和查找等操作。

三、算法分析1. 时间复杂度时间复杂度是用来衡量算法的执行时间随着问题规模增长的趋势。

常见的时间复杂度有O(1)、O(log n)、O(n)、O(n^2)等,其中O表示“量级”。

2. 空间复杂度空间复杂度是用来衡量算法的执行所需的额外内存空间随着问题规模增长的趋势。

常见的空间复杂度有O(1)、O(n)等。

3. 排序算法排序算法是对一组数据按照特定规则进行排序的算法。

常见的排序算法有冒泡排序、插入排序、选择排序、快速排序、归并排序等,它们的时间复杂度和空间复杂度各不相同。

《数据结构与算法》习题与答案

《数据结构与算法》习题与答案

《数据结构与算法》习题与答案(解答仅供参考)一、名词解释:1. 数据结构:数据结构是计算机存储、组织数据的方式,它不仅包括数据的逻辑结构(如线性结构、树形结构、图状结构等),还包括物理结构(如顺序存储、链式存储等)。

它是算法设计与分析的基础,对程序的效率和功能实现有直接影响。

2. 栈:栈是一种特殊的线性表,其操作遵循“后进先出”(Last In First Out, LIFO)原则。

在栈中,允许进行的操作主要有两种:压栈(Push),将元素添加到栈顶;弹栈(Pop),将栈顶元素移除。

3. 队列:队列是一种先进先出(First In First Out, FIFO)的数据结构,允许在其一端插入元素(称为入队),而在另一端删除元素(称为出队)。

常见的实现方式有顺序队列和循环队列。

4. 二叉排序树(又称二叉查找树):二叉排序树是一种二叉树,其每个节点的左子树中的所有节点的值都小于该节点的值,而右子树中的所有节点的值都大于该节点的值。

这种特性使得能在O(log n)的时间复杂度内完成搜索、插入和删除操作。

5. 图:图是一种非线性数据结构,由顶点(Vertex)和边(Edge)组成,用于表示对象之间的多种关系。

根据边是否有方向,可分为有向图和无向图;根据是否存在环路,又可分为有环图和无环图。

二、填空题:1. 在一个长度为n的顺序表中,插入一个新元素平均需要移动______个元素。

答案:(n/2)2. 哈希表利用______函数来确定元素的存储位置,通过解决哈希冲突以达到快速查找的目的。

答案:哈希(Hash)3. ______是最小生成树的一种算法,采用贪心策略,每次都选择当前未加入生成树且连接两个未连通集合的最小权重边。

答案:Prim算法4. 在深度优先搜索(DFS)过程中,使用______数据结构来记录已经被访问过的顶点,防止重复访问。

答案:栈或标记数组5. 快速排序算法在最坏情况下的时间复杂度为______。

中南大学数据结构与算法第5章数组和广义表课后作业答案

中南大学数据结构与算法第5章数组和广义表课后作业答案

第5章数组与广义表习题练习答案5.1请按行及按列优先顺序列出四维数组A2*3*2*3的所有元素在内存中的存储次序,开始结点为a0000。

解:按行优先的顺序排列时,先变化右边的下标,也就是右到左依次变化,这个四维数组的排列是这样的:(将这个排列分行写出以便与阅读,只要按从左到右的顺序存放就是在内存中的排列位置) a0000a0001a0002a0010a0011a0012a0100a0101a0102a0110a0111a0112a0200a0201a0202a0210a0211a0212a1000a1001a1002a1010a1011a1012a1100a1101a1102a1110a1111a1112a1200a1201a1202a1210a1211a1212按列优先的顺序排列恰恰相反,变化最快的是左边的下标,然后向右变化,所以这个四维数组的排列将是这样的,(这里为了便于阅读,也将其书写为分行形式):a0000a1000a0100a1100a0200a1200a0010a1010a0110a1110a0210a1210a0001a1001a0101a1101a0201a1201a0011a1011a0111a1111a0211a1211a0002a1002a0102a1102a0202a1202a0012a1012a0112a1112a0212a02125.2 给出C语言的三维数组地址计算公式。

解:因为C语言的数组下标下界是0,所以Loc(A mnp)=Loc(A000)+((i*n*p)+k)*d其中Amnp表示三维数组。

Loc(A000)表示数组起始位置。

i、j、k表示当前元素的下标,d表示每个元素所占单元数。

5.3设有三对角矩阵A n*n,将其三条对角线上的元素逐行地存储到向量B[0...3n-3]中,使得B[k]=a ij,求:(1)用i , j 表示k的下标变换公式。

(2)用k 表示i,j 的下标变换公式。

数据结构与算法题库(含参考答案)

数据结构与算法题库(含参考答案)

数据结构与算法题库(含参考答案)一、单选题(共100题,每题1分,共100分)1、在一次校园活动中拍摄了很多数码照片,现需将这些照片整理到一个PowerPoint 演示文稿中,快速制作的最优操作方法是:A、创建一个 PowerPoint 相册文件。

B、创建一个 PowerPoint 演示文稿,然后批量插入图片。

C、创建一个 PowerPoint 演示文稿,然后在每页幻灯片中插入图片。

D、在文件夹中选中所有照片,然后单击鼠标右键直接发送到PowerPoint 演示文稿中。

正确答案:A2、下面对“对象”概念描述错误的是A、对象不具有封装性B、对象是属性和方法的封装体C、对象间的通信是靠消息传递D、一个对象是其对应类的实例正确答案:A3、设栈与队列初始状态为空。

首先A,B,C,D,E依次入栈,再F,G,H,I,J 依次入队;然后依次出队至队空,再依次出栈至栈空。

则输出序列为A、F,G,H,I,J,E,D,C,B,AB、E,D,C,B,A,J,I,H,G,FC、F,G,H,I,J,A,B,C,D,E,D、E,D,C,B,A,F,G,H,I,J正确答案:A4、设表的长度为 20。

则在最坏情况下,冒泡排序的比较次数为A、20B、19C、90D、190正确答案:D5、设二叉树的前序序列为 ABDEGHCFIJ,中序序列为 DBGEHACIFJ。

则后序序列为A、DGHEBIJFCAB、JIHGFEDCBAC、GHIJDEFBCAD、ABCDEFGHIJ正确答案:A6、Excel工作表B列保存了11位手机号码信息,为了保护个人隐私,需将手机号码的后 4 位均用“*”表示,以 B2 单元格为例,最优的操作方法是:A、=REPLACE(B2,7,4,"****")B、=REPLACE(B2,8,4,"****")C、=MID(B2,7,4,"****")D、=MID(B2,8,4,"****")第 10 组正确答案:B7、小金从网站上查到了最近一次全国人口普查的数据表格,他准备将这份表格中的数据引用到 Excel 中以便进一步分析,最优的操作方法是:A、通过 Excel 中的“自网站获取外部数据”功能,直接将网页上的表格导入到 Excel 工作表中。

中南大学计算机科学与技术专业本科培养方案

中南大学计算机科学与技术专业本科培养方案

计算机科学与技术专业本科培养方案一、专业简介我校计算机科学与技术专业源于早期的电子计算机专业,该专业在1972年由当时的中南矿冶学院(全国重点大学)创办,是湖南省最早的计算机专业之一。

计算机科学系现有教师56名;其中教授13人,博士生导师8人,副教授19人,讲师24人;拥有博士学位的教师26人,占46%;具有留学经历的教师15人。

经过多年努力,计算机科学与技术专业已形成一套特色鲜明、富有成效的办学体系。

2001年计算机应用技术专业被评为湖南省重点专业。

2009年获计算机科学与技术专业国家级特色专业称号。

2011年计算机科学与技术一级学科专业被评为湖南省重点专业。

通过与科研、产业的结合,本专业培养跨学科高级研究及应用型人才,突出“计算机网络”、“计算机算法理论与设计”、“可信计算”、“现代软件工程”、“图形学与图像处理”、“数字媒体”、“嵌入式系统”等专业方向;并与学校国家重点学科相结合,融合“医学信息处理”、“生物计算”、“冶炼、材料、交通运输工程中的复杂计算”、“过程仿真与可视化”等专业特色。

二、培养目标中南大学计算机科学与技术专业本科生的培养定位和目标主要体现在以下三个方面:(1)主要培养面向应用基础和应用的科学和技术问题,具备知识创新、技术创新或集成创新能力的研究型及应用型高级复合型人才。

(2)通过本科阶段的学习,学生应具备高级复合型人才所需要的基本知识结构、基本能力和基本综合素质。

毕业生应掌握较为扎实的数学和自然科学基础,掌握较为系统、深入的计算机科学与技术学科的基础理论、专门知识和基本技能,具备研究型和高级应用型复合人才不可或缺的健全人格、社会责任感、科学精神、自我学习能力和人文素质,具备进行有效交流与团队合作的能力,毕业后能从事计算机科学理论、计算机系统结构、计算机网络、计算机软件及计算机应用技术等方面的科研、开发、教育和管理等工作。

同时初步具备能够分析、解决困难、复杂问题的创新能力,初步具备国际化视野。

数据结构与算法面试题80道

数据结构与算法面试题80道

数据结构与算法面试题80道由于这些题,实在太火了。

因此,应广大网友建议要求,在此把之前已整理公布的前80题,现在,一次性分享出来。

此也算是前80题第一次集体亮相。

此些题,已有上万人,看到或见识到,若私自据为己有,必定为有知之人识破,付出代价。

因此,作者声明:本人July对以上所有任何内容和资料享有版权,转载请注明作者本人July出处。

向你的厚道致敬。

谢谢。

----------------------------------------------------------------------------------------------------------------1.把二元查找树转变成排序的双向链表题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。

要求不能创立任何新的结点,只调整指针的指向。

10/ \6 14/ \ / \4 8 12 16转换成双向链表4=6=8=10=12=14=16。

首先我们定义的二元查找树节点的数据结构如下:struct BSTreeNode{int m_nValue; // value of nodeBSTreeNode *m_pLeft; // left child of nodeBSTreeNode *m_pRight; // right child of node};2.设计包含min函数的栈。

定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。

要求函数min、push以及pop的时间复杂度都是O(1)。

3.求子数组的最大和题目:输入一个整形数组,数组里有正数也有负数。

数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。

求所有子数组的和的最大。

要求时间复杂度为O(n)。

例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。

中南大学十套数据结构试题及答案

中南大学十套数据结构试题及答案

数据结构试卷(一) .................. 1 数据结构试卷(二) .................. 4 数据结构试卷(三) .................. 6 数据结构试卷(四) .................. 8 数据结构试卷(五) .................. 11 数据结构试卷(六) .................. 14 数据结构试卷(七) .................. 16 数据结构试卷(八) .................. 18 数据结构试卷(九) (20)数据结构试卷(一)参考答案 ........... 26 数据结构试卷(二)参考答案 ........... 27 数据结构试卷(三)参考答案 ........... 28 数据结构试卷(四)参考答案 ........... 30 数据结构试卷(五)参考答案 ........... 32 数据结构试卷(六)参考答案 ........... 33 数据结构试卷(七)参考答案 ........... 36 数据结构试卷(八)参考答案 ........... 37 数据结构试卷(九)参考答案 .. (38)数据结构试卷(一)、单选题(每题 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(io ),A[2][2]存放位置在676(10),每个元素占一个空间, 问 A[3][3] (10)存放在什么位置?脚注 (10)表示用 10 进制 表示。

中南大学数据结构与算法第9章查找课后作业答案

中南大学数据结构与算法第9章查找课后作业答案

第9章查找习题练习答案1.对含有n个互不相同元素的集合,同时找最大元和最小元至少需进行多少次比较?答:设变量max和min用于存放最大元和最小元(的位置),第一次取两个元素进行比较,大的放入max,小的放入min。

从第2次开始,每次取一个元素先和max比较,如果大于max则以它替换max,并结束本次比较;若小于max则再与min相比较,在最好的情况下,一路比较下去都不用和min相比较,所以这种情况下,至少要进行n-1次比较就能找到最大元和最小元。

2.若对具有n个元素的有序的顺序表和无序的顺序表分别进行顺序查找,试在下述两种情况下分别讨论两者在等概率时的平均查找长度:(1)查找不成功,即表中无关键字等于给定值K的记录;(2)查找成功,即表中有关键字等于给定值K的记录。

答:查找不成功时,需进行n+1次比较才能确定查找失败。

因此平均查找长度为n+1,这时有序表和无序表是一样的。

查找成功时,平均查找长度为(n+1)/2,有序表和无序表也是一样的。

因为顺序查找与表的初始序列状态无关。

3.画出对长度为18的有序的顺序表进行二分查找的判定树,并指出在等概率时查找成功的平均查找长度,以及查找失败时所需的最多的关键字比较次数。

答:等概率情况下,查找成功的平均查找长度为:ASL=(1+2*2+3*4+4*8+5*3)/18=3.556查找失败时,最多的关键字比较次树不超过判定树的深度,此处为5.4.为什么有序的单链表不能进行折半查找?答:因为链表无法进行随机访问,如果要访问链表的中间结点,就必须先从头结点开始进行依次访问,这就要浪费很多时间,还不如进行顺序查找,而且,用链存储结构将无法判定二分的过程是否结束,因此无法用链表实现二分查找。

5.设有序表为(a,b,c,e,f,g,i,j,k,p,q),请分别画出对给定值b,g和n进行折半查找的过程。

解:(1)查找b的过程如下(其中方括号表示当前查找区间,圆括号表示当前比较的关键字)下标: 1 2 3 4 5 6 7 8 9 10 11 12 13第一次比较: [a b c d e f (g) h i j k p q]第二次比较: [a b (c) d e f] g h i j k p q第三次比较: [a (b)]c d e f g h i j k p q经过三次比较,查找成功。

中南大学数据结构实验报告

中南大学数据结构实验报告

[键入文档副标题][键入文档标题]实验题目:(1)单链表的实现(2)栈和队列(3)二叉树的遍历(4)查找与排序学生姓名:代巍学生学号:0909121615指导老师:余腊生所在学院:信息科学与工程学院专业班级:信息安全1201班指导教师评定:签名:实验一单链表的实现一、实验目的了解线性表的逻辑结构和各种存储表示方法,以及定义在逻辑结构上的各种基本运算及其在某种存储结构上如何实现这些基本运算。

在熟悉上述内容的基础上,能够针对具体应用问题的要求和性质,选择合适的存储结构设计出相应的有效算法,解决与线性表相关的实际问题二、实验内容用C/C++语言编写程序,完成以下功能:(1)运行时输入数据,创建一个单链表(2)可在单链表的任意位置插入新结点(3)可删除单链表的任意一个结点(4)在单链表中查找结点(5)输出单链表三、程序设计的基本思想,原理和算法描述:(包括程序的结构,数据结构,输入/输出设计,符号名说明等)用一组地址任意的存储单元存放线性表中的数据元素。

以元素(数据元素的映象) + 指针(指示后继元素存储位置) = 结点(表示数据元素或数据元素的映象)以“结点的序列”表示线性表称作线性链表(单链表)单链表是指数据接点是单向排列的。

一个单链表结点,其结构类型分为两部分:(1)、数据域:用来存储本身数据。

(2)、链域或称为指针域:用来存储下一个结点地址或者说指向其直接后继的指针。

1、单链表的查找对单链表进行查找的思路为:对单链表的结点依次扫描,检测其数据域是否是我们所要查好的值,若是返回该结点的指针,否则返回NULL。

2、单链表的插入因为在单链表的链域中包含了后继结点的存储地址,所以当我们实现的时候,只要知道该单链表的头指针,即可依次对每个结点的数据域进行检测。

假设在一个单链表中存在2个连续结点p、q(其中p为q的直接前驱),若我们需要在p、q之间插入一个新结点s,那么我们必须先为s分配空间并赋值,然后使p的链域存储s的地址,s的链域存储q的地址即可。

2022年中南林业科技大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)

2022年中南林业科技大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)

2022年中南林业科技大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)一、选择题1、从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为()排序法。

A.插入B.选择C.希尔D.二路归并2、下列说法不正确的是()。

A.图的遍历是从给定的源点出发每个顶点仅被访问一次B.遍历的基本方法有两种:深度遍历和广度遍历C.图的深度遍历不适用于有向图D.图的深度遍历是一个递归过程3、链表不具有的特点是()。

A.插入、删除不需要移动元素B.可随机访问任一元素C.不必事先估计存储空间D.所需空间与线性长度成正比4、动态存储管理系统中,通常可有()种不同的分配策略。

A.1B.2C.3D.45、最大容量为n的循环队列,队尾指针是rear,队头:front,则队空的条件是()。

A.(rear+1)MOD n=frontB.rear=frontC.rear+1=frontD.(rear-1)MOD n=front6、已知字符串S为“abaabaabacacaabaabcc”,模式串t为“abaabc”,采用KMP算法进行匹配,第一次出现“失配”(s!=t)时,i=j=5,则下次开始匹配时,i和j的值分别()。

A.i=1,j=0 B.i=5,j=0 C.i=5,j=2 D.i=6,j=27、若一棵二叉树的前序遍历序列为a,e,b,d,c,后序遍历序列为b, c,d,e,a,则根结点的孩子结点()。

A.只有e B.有e、b C.有e、c D.无法确定8、一棵哈夫曼树共有215个结点,对其进行哈夫曼编码,共能得到()个不同的码字。

A.107B.108C.214D.2159、在下述结论中,正确的有()。

①只有一个结点的二叉树的度为0。

②二叉树的度为2。

③二叉树的左右子树可任意交换。

④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。

A.①②③B.⑦③④C.②④D.①④10、若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为()。

中南大学《数据结构》课程作业(在线作业)二及参考答案

中南大学《数据结构》课程作业(在线作业)二及参考答案

(一) 单选题1. 用邻接表表示图进行深度优先遍历时,通常是采用()来实现算法的。

(A) 栈(B) 队列(C) 树(D) 图参考答案: (A)2. 设图的邻接链表如图所示,则该图的边的数目是()。

(A) 4(B)5 (C) 10(D) 20参考答案: (B)3. 若采用邻接矩阵翻存储一个n 个顶点的无向图,则该邻接矩阵是一个()。

(A)上三角矩阵(B)稀疏矩阵(C)对角矩阵(D)对称矩阵参考答案: (D)4.无向图,其中:,对该图进行深度优先遍历,得到的顶点序列正确的是()。

(A)a,b,e,c,d,f (B)a,c,f,e,b,d (C)a,e,b,c,f,d(D)a,e,d,f,c,b参考答案: (D)5. 设森林F 对应的二叉树为B ,它有m 个结点,B 的根为p ,p 的右子树结点个数为n,森林F 中第一棵子树的结点个数是()。

(A)(B)(C)(D) 条件不足,无法确定参考答案: (A)6. 关键路径是事件结点网络中()。

(A) 从源点到汇点的最长路径(B) 从源点到汇点的最短路径(C) 最长回路(D) 最短回路参考答案: (A)7. 树最适合用来表示()。

(A)有序数据元素(B) 无序数据元素(C) 元素之间具有分支层次关系的数据(D) 元素之间无联系的数据参考答案:(C)8. 在一棵具有n个结点的二叉链表中,所有结点的空域个数等于()。

(A)n(B)(C)(D)参考答案:(C)9. 在一个非空二叉树的中序遍历序列中,根结点的右边()。

(A)只有右子树上的所有结点(B) 只有右子树上的部分结点(C) 只有左子树的上的部分结点(D) 只有左子树上的所有结点参考答案:(A)10. 有8个结点的无向连通图最少有()条边。

(A)5 (B) 6 (C) 7 (D) 8参考答案:(C)11. 含有10个结点的二叉树中,度为0的结点数为4,则度为2的结点数为()。

(A)3 (B) 4 (C) 5 (D) 6参考答案:(A)12. 在有n个叶子结点的哈夫曼树中,其结点总数为()。

数据结构与算法模拟试卷一、二及参考答案

数据结构与算法模拟试卷一、二及参考答案

四川大学《数据结构与算法分析》课程考试模拟试卷模拟试卷一一、单选题(每题2 分,共20分)1.以下数据结构中哪一个是线性结构?( )A. 有向图B. 队列C. 线索二叉树D. B树2.在一个单链表HL中,若要在当前由指针p指向的结点后面插入一个由q指向的结点,则执行如下( )语句序列。

A. p=q; p->next=q;B. p->next=q; q->next=p;C. p->next=q->next; p=q;D. q->next=p->next; p->next=q;3.以下哪一个不是队列的基本运算?()A. 在队列第i个元素之后插入一个元素B. 从队头删除一个元素C. 判断一个队列是否为空D.读取队头元素的值4.字符A、B、C依次进入一个栈,按出栈的先后顺序组成不同的字符串,至多可以组成( )个不同的字符串?A.14B.5C.6D.85.由权值分别为3,8,6,2的叶子生成一棵哈夫曼树,它的带权路径长度为( )。

以下6-8题基于图1。

6.该二叉树结点的前序遍历的序列为( )。

A.E、G、F、A、C、D、BB.E、A、G、C、F、B、DC.E、A、C、B、D、G、FD.E、G、A、C、D、F、B7.该二叉树结点的中序遍历的序列为( )。

A. A、B、C、D、E、G、FB. E、A、G、C、F、B、DC. E、A、C、B、D、G、FE.B、D、C、A、F、G、E8.该二叉树的按层遍历的序列为( )。

A.E、G、F、A、C、D、B B. E、A、C、B、D、G、FC. E、A、G、C、F、B、DD. E、G、A、C、D、F、B9.下面关于图的存储的叙述中正确的是( )。

A.用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关B.用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关C. 用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关D.用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关10.设有关键码序列(q,g,m,z,a,n,p,x,h),下面哪一个序列是从上述序列出发建堆的结果?( )A. a,g,h,m,n,p,q,x,zB. a,g,m,h,q,n,p,x,zC. g,m,q,a,n,p,x,h,zD. h,g,m,p,a,n,q,x,z二、填空题(每空1分,共26分)1.数据的物理结构被分为_________、________、__________和___________四种。

中南大学数据结构与算法_第1章绪论课后作业答案

中南大学数据结构与算法_第1章绪论课后作业答案

第一章绪论习题练习答案1.1 简述下列概念:数据、数据元素、数据类型、数据结构、逻辑结构、存储结构、线性结构、非线性结构。

● 数据:指能够被计算机识别、存储和加工处理的信息载体。

● 数据元素:就是数据的基本单位,在某些情况下,数据元素也称为元素、结点、顶点、记录。

数据元素有时可以由若干数据项组成。

● 数据类型:是一个值的集合以及在这些值上定义的一组操作的总称。

通常数据类型可以看作是程序设计语言中已实现的数据结构。

● 数据结构:指的是数据之间的相互关系,即数据的组织形式。

一般包括三个方面的内容:数据的逻辑结构、存储结构和数据的运算。

● 逻辑结构:指数据元素之间的逻辑关系。

● 存储结构:数据元素及其关系在计算机存储器内的表示,称为数据的存储结构.● 线性结构:数据逻辑结构中的一类。

它的特征是若结构为非空集,则该结构有且只有一个开始结点和一个终端结点,并且所有结点都有且只有一个直接前趋和一个直接后继。

线性表就是一个典型的线性结构。

栈、队列、串等都是线性结构。

● 非线性结构:数据逻辑结构中的另一大类,它的逻辑特征是一个结点可能有多个直接前趋和直接后继。

数组、广义表、树和图等数据结构都是非线性结构。

1.2 试举一个数据结构的例子、叙述其逻辑结构、存储结构、运算三个方面的内容。

答:例如有一张学生体检情况登记表,记录了一个班的学生的身高、体重等各项体检信息。

这张登记表中,每个学生的各项体检信息排在一行上。

这个表就是一个数据结构。

每个记录(有姓名,学号,身高和体重等字段)就是一个结点,对于整个表来说,只有一个开始结点(它的前面无记录)和一个终端结点(它的后面无记录),其他的结点则各有一个也只有一个直接前趋和直接后继(它的前面和后面均有且只有一个记录)。

这几个关系就确定了这个表的逻辑结构是线性结构。

这个表中的数据如何存储到计算机里,并且如何表示数据元素之间的关系呢? 即用一片连续的内存单元来存放这些记录(如用数组表示)还是随机存放各结点数据再用指针进行链接呢? 这就是存储结构的问题。

中南大学《数据结构》课程作业(在线作业)三及参考答案

中南大学《数据结构》课程作业(在线作业)三及参考答案
(C) 40, 38,46, 56, 79, 84
(D) 40, 38, 46, 84, 56, 79
参考答案:
(C)
24.
对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列进行同样的排序操作,直到子序列为空或只剩下一个元素为止。这样的排序方法是()。
(A)直接选择排序(B)直接插入排序(C)快速排序(D)冒泡排序
参考答案:
(C)
5.
快速排序在下列哪种情况下最易发挥其长处()。
(A)被排序的数据中含有多个相同排序码
(B)被排序的数据已基本有序
(C)被排序的数据完全无序
(D)被排序的数据中的最大值和最小值相差悬殊
参考答案:
(C)
6.
能进行二分查找的线性表,必须以()。
(A)顺序方式存储,且元素按关键字有序
(B)链式方式存储,且元素按关键字有序
(一)单选题
1.
堆是一种()排序。
(A)插入(B)选择(C)交换(D)归并
参考答案:
(B)
2.
用某种排序方法对关键字序列进行排序时,序列的变化情况如下:20,15,21,25,47,27,68,35,8415,20,21,25,35,27,47,68,8415,20,21,25,27,35,47,68,84则采用的方法是()。
(C)顺序方式存储,且元素按关键字分块有序
(D)链式方式存储,且元素按关键字分块有序
参考答案:
(A)
7.
为使平均查找长度达到最小,当由关键字集合构建二叉排序树时,第一个插入的关键字应为()。
(A) 5 (B) 37 (C) 41 (D) 62
参考答案:
(B)
8.

中南大学《数据结构》课程作业(在线作业)一及参考答案

中南大学《数据结构》课程作业(在线作业)一及参考答案

(一) 单选题1. 栈和队列的共同点是()。

(A)都是先进先出(B) 都是先进后出(C) 只允许在端点处插入和删除元素(D) 没有共同点参考答案:(C)2.对广义表执行操作的结果是()。

(A)(B)(C)(D) (e)参考答案:(B)3. 一个递归的定义可以用递归过程求解,也可以用非递归过程求解,但单从运行时间来看,通常递归过程比非递归过程()。

(A)较快(B) 较慢(C) 相同(D) 不定参考答案:(B)4.从一个长度为n的顺序表中删除第i个元素时,需向前移动的元素的个数是()。

(A)(B)(C)(D)参考答案:(A)5. 若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则最节省运算时间的存储方式是()。

(A)单链表(B) 仅有头指针的单循环链表(C) 双链表(D) 仅有尾指针的单循环链表参考答案:(D)6. 在下面的程序段中,对x的赋值语句的频度为()。

(A)(B)(C)(D)参考答案: (C)7. 对于栈操作数据的原则是()。

(A)先进先出(B)后进先出(C)后进后出(D)不分顺序参考答案: (B)8. 求循环链表中当前结点的后继和前驱的时间复杂度分别是()。

(A)和(B) 和(C) 和(D)和参考答案: (C)9. 与数据元素本身的形式、内容、相对位置、个数无关的是数据的()。

(A)存储结构(B)逻辑结构(C)算法(D)操作参考答案:(B)10.程序段如下:其中n为正整数,则最后一行的语句频度在最坏情况下是()。

(A)(B)(C)(D)参考答案:(D)11.下述程序段中语句的频度是()。

(A)(B)(C)(D)参考答案:(C)12.二维数组采用列优先的存储方法,若每个元素各占3个存储单元,且地址为150,则元素的地址为()。

(A)429 (B) 432 (C) 435 (D) 438参考答案:(A)13.下列程序段的渐进时间复杂度为()。

;(A)(B)(C)(D)参考答案:(C)14.下列程序的时间复杂度为()。

中南大学计算机数据结构2021试题参考答案

中南大学计算机数据结构2021试题参考答案

中南大学计算机数据结构2021试题参考答案中南大学考试试卷2022-2022学年上学期期末考试试题时间100分钟数据结构课程56学时3.5学分考试形式:闭卷专业等级:计算机科学与技术专业10级,总分100分,占总分的70%姓名班级学号(本文有四个主要问题,所有答案都在答题纸上!)一、选择题(每题2分,共24分)1.以下数据结构中,线性结构为()a.图b.栈c.二分查找树d.森林2.用二分法查表(A0,A1,A2,A3,…A16)。

需要进行两次比较的元素有()a.a7和a16b.a11和a13c.a1和a14d.a3和a123.使用概率搜索来提高搜索效率是为了a.查找次数越少的元素查找速度越快b.查找次数越少的元素越往前存放c.查找次数越多的元素越往后存放d.查找次数越多的元素查找速度越快4.二分查找要求元素()a、有序和顺序存储B.有序和链式存储C.无序和顺序存储D.无序和链式存储5.众所周知,ppre是指向链表中某个节点的指针,pnew是指向新节点的指针。

以下哪种伪代码算法是将一个新结点插入到链表中ppre所指向结点的后面?()a.ppre->link=pnew;pnew=null;b、 ppre->link=pnew->link;pnew->link=null;c、 pnew->link=ppre->link;ppre->link=pnew;d、 pnew->link=ppre->link;ppre->link=null;6.在递归算法执行过程中,计算机系统必定会用到的数据结构是()a、队列B.链表C.堆栈D.二叉树7.一个队列的入列序为abcd,则队列的可能输出序列为()a.dcbab.abcdc.adcbd.cbda8.有()个2级节点a.8b。

9c。

10天。

11在一个有10个叶节点的二叉树中9.若a=10,b=4,c=6,d=4,e=15则后缀表达式“ab*cd+-e+”的值为()。

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

第一章绪论习题练习答案
简述下列概念:数据、数据元素、数据类型、数据结构、逻辑结构、存储结构、线性结构、非线性结构。

• 数据:指能够被计算机识别、存储和加工处理的信息载体。

• 数据元素:就是数据的基本单位,在某些情况下,数据元素也称为元素、结点、顶点、记录。

数据元素
有时可以由若干数据项组成。

• 数据类型:是一个值的集合以及在这些值上定义的一组操作的总称。

通常数据类型可以看作是程序设计语言中已实现的数据结构。

• 数据结构:指的是数据之间的相互关系,即数据的组织形式。

一般包括三个方面的内容 :数据的逻辑结构、存储结构和数据的运算。

• 逻辑结构:指数据元素之间的逻辑关系
• 存储结构:数据元素及其关系在计算机存储器内的表示,称为数据的存储结构
• 线性结构:数据逻辑结构中的一类。

它的特征是若结构为非空集,则该结构有且只有一个开始结点和一个终端结点,并且所有结点都有且只有一个直接前趋和一个直接后继。

线性表就是一个典型的线性结构。

栈、队列、串等都是线性结构。

• 非线性结构:数据逻辑结构中的另一大类,它的逻辑特征是一个结点可能有多个直接前趋和直接后继。

数组、广义表、树和图等数据结构都是非线性结构。

试举一个数据结构的例子、叙述其逻辑结构、存储结构、运算三个方面的内容。

答:
例如有一张学生体检情况登记表,记录了一个班的学生的身高、体重等各项体检信息。

这张登记表中,每个学生的各项体检信息排在一行上。

这个表就是一个数据结构。

每个记录(有姓名,学号,身高和体重等
字段)就是一个结点,对于整个表来说,只有一个开始结点(它的前面无记录)和一个终端结点(它的后面无记录),其他的结点则各有一个也只有一个直接前趋和直接后继(它的前面和后面均有且只有一个记录)。

这几
个关系就确定了这个表的逻辑结构是线性结构。

这个表中的数据如何存储到计算机里,并且如何表示数据元素之间的关系呢即用一片连续的内存单元来存放这些记录(如用数组表示)还是随机存放各结点数据再用指针进行链接呢这就是存储结构的问题。

在这个表的某种存储结构基础上,可实现对这张表中的记录进行查询,修改,删除等操作。

对这个表可以进行哪些操作以及如何实现这些操作就是数据的运算问题了。

常用的存储表示方法有哪几种
答:
常用的存储表示方法有四种 :
• 顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。

由此得到的存储表示称为顺序存储结构,通常借助程序语言的数组描述。

• 链接存储方法:它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示。

由此得到的存储表示称为链式存储结构,通常借助于程序语言的指针类型描述。

• 索引存储方法:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。

组成索引表的索引
项由结点的关键字和地址组成。

若每个结点在索引表中都有一个索引项,则该索引表称之为稠密索引(Dense
Index)。

若一组结点在索引表中只对应一个索引项,则该索引表称为稀疏索引。

• 散列存储方法:就是根据结点的关键字直接计算出该结点的存储地址。

设三个函数 f,g,h 分别为 f(n)=100n 3+n2+1000 , g(n)=25n3+5000n2 , h(n)=+5000nlgn 请判断下列关系是否成立:
(1)f(n)=O(g(n))
(2)g(n)=O(f(n))
(3)h(n)=O
(4)h(n)=O(nlgn)
分析:
数学符号"0"的严格的数学定义:
若T (n)和f (n)是定义在正整数集合上的两个函数,贝U T (n) =0 (f (n))表示存在正的常数C和nO, 使得当n》nO时都满足0<T ( n) < C • (fn )。

通俗地说,就是当n—s时,f(n)的函数值增长速度与 T (n)的增长速度同阶。

一般,一个函数的增长速度与该函数的最高次阶同阶。

即:
0(f(n))=n3
0(g(n))=n3
0(h(n))=
所以答案为:
答:
•(1)成立
•(2)成立
•( 3)成立。

•( 4)不成立。

设有两个算法在同一机器上运行,其执行时间分别为100n2和2n,要使前者快于后者,
n 至少要多大分析:
要使前者快于后者,即前者的时间消耗低于后者,即:
n
100n2
<2
求解上式,可得
答:
n=15
设n为正整数,利用大"0"记号,将下列程序段的执行时间表示为n的函数。

(1)i=1; k=0;
while(i<n)
{ k=k+10*i;i++;
}
分析:
i=1; //1
while(i<n) //n
{ k=k+10*i; //n-1
i++; //n-1
}
由以上列出的各语句的频度,可得该程序段的时间消耗: T(n)=1+1+n+(n-1)+(n-1)=3n 可表示为 T(n)=O(n)
(2)i=0; k=0;
do{
k=k+10*i; i++;
}
while(i<n);
分析:
i=0; //1
k=0; //1
do{ //n
k=k+10*i; //n
while(i<n);//n
由以上列出的各语句的频度,可得该程序段的时间消耗:
T(n)=1+1+n+n+n+n=4n+2
可表示为 T(n)=O(n)
(3)i=1; j=0;
while(i+j<=n)
{
if (i>j) j++;
else i++;
}
分析:
通过分析以上程序段,可将 i+j 看成一个控制循环次数的变量,且每执行一次循环, i+j 的值加 1。

该程序段的主要时间消耗是 while 循环,而 while 循环共做了 n 次,所以该程序段的执行时间为:T(n)=O(n)
(4)x=n; // n>1
while (x>=(y+1)*(y+1))
y++;
分析:
由 x=n 且 x 的值在程序中不变,又 while 的循环条件 (x>=(y+1)*(y+1)) 可知:当 (y+1)*(y+1) 刚超过 n 的值时退出循环。

由(y+1)*(y+1)<n 得:yvn^
所以,该程序段的执行时间为:
向下取整(n A
(5)x=91; y=100;
while(y>0)
if(x>100)
{x=x-10;y--;}
else x++;
分析:
x=91; //1
y=100; //1
while(y>0) //1101
{ x=x-10; //100
y--; //100
}
else
x++; //1000
以上程序段右侧列出了执行次数。

该程序段的执行时间为:
T(n)=O(1)
算法的时间复杂度仅与问题的规模相关吗
答:
算法的时间复杂度不仅与问题的规模相关,还与输入实例中的初始状态有关。

但在最坏的情况下,其时间复杂度就是只与求解问题的规模相关的。

我们在讨论时间复杂度时,一般就是以最坏情况下的时间复杂度为准的。

按增长率由小至大的顺序排列下列各函数:
K 次方阶:、 n(3/2)指数阶 (按指数由小到大排 ): n lgn、(3/2) n、2n、 n!、 n n
注意:(2/3)A n由于底数小于1,所以是一个递减函数,其数量级应小于常数阶。

根据以上分析按增长率由小至大的顺序可排列如下: (2/3)n < 2100 < lgn < < n(3/2) < n lgn < (3/2)n < 2n < n! < n n
有时为了比较两个同数量级算法的优劣,须突出主项的常数因子,而将低次项用大"O" 记号表示。

例如,设T i(n)=+100n+256=+O(n), T2(n)==+0(n),这两个式子表示,当 n足够大时T i(n)优于T2(n),因为前者的常数
因子小于后者。

请用此方法表示下列函数,并指出当 n 足够大时,哪一个较优,哪一个较劣
函数大"0"表示优劣
5n1 2+0(n) 较差
(4) T4(n)=+6000nlgn +0(nlgn)
2100, (3/2)n,(2/3)n, n n , , n! ,
2n,lgn ,n lgn, n(3/2)
答:
常见的时间复杂度按数量级递增排列
,依次为:常数阶0(1)、对数阶0(log2n)、线性阶0(n)、线性对数阶
0(nlog2n)、平方阶0(n2)、立方阶0(n3)、k
次方阶0(n k)、指数阶0(2n)。

先将题中的函数分成如下几类:
常数阶: 2100
1 T i(n)=5n2-3n+60lgn
2 T2(n)=3n2+i000n+3lgn 3n2+0(n) 其次
(3) T3(n)=8n2+3lgn 8n2+0(lgn) 最差
最优
对数阶: lgn。

相关文档
最新文档