ImageVerifierCode 换一换
格式:DOCX , 页数:48 ,大小:91.44KB ,
资源ID:9237192      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9237192.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(四川大学级数据结构复习.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

四川大学级数据结构复习.docx

1、四川大学级数据结构复习四川大学“精品课程”计算机科学与技术专业(本科)数据结构课程考试说明与模拟试卷第一部分 考试说明 数据结构是计算机科学与技术专业统设的一门重要的必修专业基础课,它主要研究数据的各种逻辑结构和在计算机中的存储结构,还研究对数据进行的插入、查找、删除、排序、遍历等基本运算或操作以及这些运算在各种存储结构上具体实现的算法。由于本课程的主教材采用C+语言描述算法,期末卷面考试也采用C+语言描述,因而要求在做平时作业和上机实验操作时用C+开发工具(如:Visual C+或 C+ Builder或Borland C+)。考试的题型有:单选题,填空题,运算题,阅读算法,填写算法和编写算

2、法等。 下面按照主教材中各章次序给出每章的具体复习要求,以便同学们更好地进行期末复习。第一章 绪论重点掌握的内容: 1. 数据结构的二元组表示,对应的图形表示,序偶和边之间的对应关系。 2. 集合结构、线性结构、树结构和图结构的特点。 3. 抽象数据类型的定义和表示方法。 4. 一维和二维数组中元素的按下标和按地址的访问方式以及相互转换,元素地址和数组地址的计算,元素占用存储空间大小和数组占用存储空间大小的计算。 5. 普通函数重载和操作符函数重载的含义,定义格式和调用格式。 6. 函数定义中值参数和引用参数的说明格式及作用,函数被调用执行时对传送来的实际参数的影响。 7. 算法的时间复杂度和

3、空间复杂度的概念,计算方法,数量级表示。 8. 一个简单算法的最好、最差和平均这三种情况的时间复杂度的计算。 对于本章的其余内容均作一般掌握。第二章 线性表 重点掌握的内容: 1. 线性表的定义和抽象数据类型的描述,线性表中每一种操作的功能,对应的函数名、返回值类型和参数表中每个参数的作用。 2. 线性表的顺序存储结构的类型定义,即List类型的定义和每个域的定义及作用。 3. 线性表的每一种运算在顺序存储结构上实现的算法,及相应的时间复杂度。 4. 链接存储的概念,线性表的单链接和双链接存储的结构,向单链表中一个结点之后插入新结点或从单链表中删除一个结点的后继结点的指针链接过程。 5. 单链

4、表中结点的结构,每个域的定义及作用,即LNode类型的定义及结构。 6. 带表头附加结点的链表、循环链表、双向链表的结构特点。 7. 线性表的每一种运算在单链表上实现的算法及相应的时间复杂度。8. 在顺序存储或链接存储的线性表上实现指定功能的算法的分析和设计。9Josephus问题的求解过程。10顺序表和线性链表的性能比较及各自使用背景。 对于本章的其余内容均作一般掌握。第三章 数组和广义表重点掌握的内容:1. 多维数组的逻辑结构特征。2. 多维数组的顺序存储结构及地址计算公式。3数组是一种随机存取结构的原因。4特殊矩阵和稀疏矩阵的概念。5特殊矩阵和压缩存储的下标变换方法。 6. 稀疏矩阵的定

5、义和三元组线性表表示。 7. 稀疏矩阵的顺序存储、带行指针向量的链接存储,在每一种存储中非零元素结点的结构。 8. 稀疏矩阵的转置运算。9. 广义表的定义和表示,广义表长度和深度的计算。10广义表上的求表头、表尾运算。 5. 广义表的链接存储结构中结点类型的定义,分别求广义表长度和深度的递归算法,它们对应的时间复杂度。 一般掌握的内容:稀疏矩阵转置的算法描述。 对于本章的其余内容均作一般了解。第四章 栈和队列 重点掌握的内容: 1. 栈的定义和抽象数据类型的描述,栈中每一种操作的功能,对应的函数名、返回值类型和参数表中每个参数的作用。 2. 栈的顺序存储结构的类型定义,即Stack类型的定义和

6、每个域的定义及作用。 3栈的每一种运算在顺序存储结构上实现的算法,及相应的时间复杂度。 4. 栈的每一种运算在链接存储结构上实现的算法及相应的时间复杂度。5. 算术表达式的中缀表示和后缀表示,以及相互转换的规则,后缀表达式求值的方法。6给定n个栈元素, 出栈可能或不可能的序列数。 7. 队列的定义和抽象数据类型的描述,队列中每一种操作的功能,对应的函数名、返回值类型和参数表中每个参数的作用。 8. 队列的顺序存储结构的类型定义,即Queue类型的定义和每个域的定义及作用。 9. 队列的每一种运算在顺序存储结构上实现的算法及相应的时间复杂度。10. 利用栈和队列解决简单问题的算法分析和设计。11

7、双端队的概念及可能出队序列。 一般掌握的内容: 1. 后缀表达式求值的算法,把中缀表达式转换为后缀表达式的算法。 2. 队列的链接存储结构,以及实现每一种队列运算的算法和相应的时间复杂度。 对于本章的其余内容均作一般了解。第五章 字符串 重点掌握的内容: 1. 串的有关概念及基本运算。 2. 串与线性表的关系。 3串的各种存储结构。 一般掌握的内容: 1. 串上各种运算的实现及其时间性能分析。 2. 使用C+提供的操作函数构造与串相关的算法解决简单的应用问题。第六章 树和二叉树 重点掌握的内容: 1. 树和二叉树的定义,对于一棵具体树和二叉树的二元组表示及广义表表示。2. 树和二叉树的概念,如

8、结点的度、树的度、树叶、分枝结点、树的层数、树的深度等。3不同结点数的树和二叉树的形态。 4. 树和二叉树的性质,如已知树或二叉树的深度h可求出相应的最多结点数,已知结点数n可求出对应树或二叉树的最大和最小高度。 5. 二叉树中结点的编号规则和对应的顺序存储结构。 6. 二叉树的链接存储结构及存储结点的类型定义,即BTreeNode类型的定义和每个域的定义及作用。7. 二叉树的先序、中序、后序遍历的递归过程和递归算法,中序遍历的非递归算法,按层遍历的过程和算法,每种算法的时间复杂度。8二叉树的先序、中序、后序遍历序列,唯一确定一棵二叉树的原则。一般掌握的内容: 1. 普通树的链接存储结构,GT

9、reeNode类型的定义和每个域的定义及作用。 2普通树的先根、后根和按层遍历的过程及算法。 3. 在链接存储的二叉树上实现指定功能的算法分析和设计。 对于本章的其余内容均作一般了解。二叉树的应用 重点掌握的内容: 1. 二叉搜索树的定义和性质。 2. 二叉搜索树查找的递归算法和非递归算法,相应的时间复杂度,查找一个元素的查找长度,即从树根结点到该结点的路径上的结点数。 3. 二叉搜索树插入的递归算法和非递归算法,相应的时间复杂度,根据一组数据生成一棵二叉搜索树的过程。 4. 堆的定义和顺序存储结构,小根堆和大根堆的异同。 5. 向堆中插入元素的过程、算法描述及时间复杂度。 6. 从堆中删除元

10、素的过程、算法描述及时间复杂度。7. 哈夫曼树的定义,树的带权路径长度的计算,根据若干个叶子结点的权构造哈夫曼树的过程。8顺序二叉树及二叉链表表示二叉树。 对本章的其余内容均作一般了解。第七章 图 重点掌握的内容: 1. 图的顶点集和边集的表示。 2. 图的一些概念的含义,如顶点、边、度、完全图、子图、路径、路径长度、连通图、权、网等。 3. 图的邻接矩阵、邻接表、邻接多重表和十字链表四种存储结构及相应的空间复杂度。 4. 存储图使用的vexlist, adjmatrix, adjlist, edgenode, edgeset, edge等类型的定义及用途。 5. 图的深度优先和广度优先搜索遍

11、历的过程。 6. 对分别用邻接矩阵和用邻接表表示的图进行深度优先搜索遍历的过程、算法描述以及相应的时间复杂度。 7. 对分别用邻接矩阵和用邻接表表示的图进行广度优先搜索遍历的过程、算法描述以及相应的时间复杂度。 8. 图的生成树、深度优先生成树和广度优先生成树、生成树的权、最小生成树等的定义。 9. 根据普里姆算法求图的最小生成树的过程。 10根据克鲁斯卡尔算法求图的最小生成树的过程。11. 图的拓扑序列和拓扑排序的概念,求图的拓扑序列的方法,对用邻接表表示的图进行拓扑排序的过程。一般掌握的内容: 1根据普里姆算法求图的最小生成树的算法描述。 2根据克鲁斯卡尔算法求图的最小生成树的算法描述。3

12、. 对用邻接表表示的图进行拓扑排序的和算法描述。4欧拉问题算法。 对本章的其余内容均作一般了解。第八章 查找 重点掌握的内容: 1. 在一维数组上进行顺序查找的过程、算法、平均查找长度和时间复杂度。 2. 在一维数组上进行二分查找的过程、递归和非递归算法、平均查找长度和时间复杂度,二分查找一个给定值元素的查找长度(即查找路径上的元素数),二分查找对应的判定树的性质。 3. 索引存储的概念,索引表的存储结构和索引项的存储结构,索引查找一个元素的过程、平均查找长度和时间复杂度。 4. 散列存储的概念,散列函数、散列表、冲突、同义词、装填因子等术语的含义。 5. 利用除留余数法建立散列函数求元素散列

13、地址的方法。 6. 利用开放定址法中的线性探查法处理冲突进行散列存储和查找的过程,利用链接法处理冲突进行散列存储和查找的过程。 7. 根据除留余数法构造散列函数,采用线性探查法或链接法处理冲突,把一组数据散列存储到散列表中,计算出一个给定值元素的查找长度和查找所有元素的平均查找长度。 8. B_树中每个结点的结构,树根结点或非树根结点中关键字的个数范围和子树的个数范围,B_的结构特性,从B_树上查找一个给定值元素的过程。 一般掌握的内容: 1. 索引查找和分块查找算法。 2. B_树查找算法。 3. 向B_树中插入元素的过程。 对本章的其余内容均作一般了解。第九章 排序 重点掌握的内容: 1.

14、 直接插入、直接选择和冒泡排序的方法,排序过程及时间复杂度。 2. 在堆排序中建立初始堆的过程和利用堆排序的过程,对一个分支结点进行筛运算的过程、算法及时间复杂度,整个堆排序的算法描述及时间复杂度。 3. 快速排序的方法,对一组数据的排序过程,对应的二叉搜索树,快速排序过程中划分的层数和递归排序区间的个数。 4. 递归排序的递归算法,它在平均情况下的时间和空间复杂度,在最坏情况下的时间和空间复杂度。 5. 二路归并排序的方法和对数据的排序过程,每趟排序前、后的有序表长度,二路归并排序的趟数、时间复杂度和空间复杂度。 一般掌握的内容: 1. 每一种排序方法的稳定性。 2. 直接插入排序和直接选择

15、排序的算法。 一般了解的内容: 1. 二路归并排序过程中涉及的每个算法描述。2. 冒泡排序算法。第十章 文件 重点掌握的内容: 1. 文件的有关概念。 2. 文件的逻辑结构及其操作。 3. 文件的存储结构(组织方式) 分类。 4. 评价文件组织效率的标准。5. 顺序文件的特点及外存种类的适应性。6. 顺序文件上各种查询方法的基本思想及对外存种类的要求。7.索引文件的组织方式和特点。8索引文件的的查询和更新操作的基本思想。9. 两种最常用的索引顺序文件(ISAM文件和VSAM文件) 的组织方式和特点。10. 在ISAM文件和VSAM文件上查找和更新操作的基本思想。11. 散列文件的组织方式和特点

16、。12. 散列文件的查询和更新操作的基本思想。13. 多关键字文件和其它文件的差别。14.多重表文件和倒排文件组织方式和特点。15. 多重表文件和倒排文件查询和更新操作的基本思想。 本章其它内容一般掌握第二部分 模拟试卷模拟试卷一一、 单选题(每题 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=

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

18、、C、F、B、DC. E、A、C、B、D、G、F D. E、G、A、C、D、F、B7. 该二叉树结点的中序遍历的序列为( )。A. A、B、C、D、E、G、FB. E、A、G、C、F、B、D C. E、A、C、B、D、G、F E. B、D、C、A、F、G、E 8. 该二叉树的按层遍历的序列为( )。 AE、G、F、A、C、D、B B. E、A、C、B、D、G、F C. E、A、G、C、F、B、D D. E、G、A、C、D、F、B9. 下面关于图的存储的叙述中正确的是( )。 A用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关 B用邻接表法存储图,占用的存储空间大小与图中边

19、数和结点个数都有关 C. 用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关 D用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关10. 设有关键码序列(q,g,m,z,a,n,p,x,h),下面哪一个序列是从上述序列出发建堆的结果?( ) A. a,g,h,m,n,p,q,x,z B. a,g,m,h,q,n,p,x,z C. g,m,q,a,n,p,x,h,z D. h,g,m,p,a,n,q,x,z二、 填空题(每空1分,共26分)1. 数据的物理结构被分为_、_、_和_四种。2. 对于一个长度为n的顺序存储的线性表,在表头插入元素的时间复杂度为_,在

20、表尾插入元素的时间复杂度为_。3. 向一个由HS指向的链栈中插入一个结点时p时,需要执行的操作是_;删除一个结点时,需要执行的操作是_(假设栈不空而且无需回收被删除结点)。4. 对于一棵具有n个结点的二叉树,一个结点的编号为i(1in),若它有左孩子则左孩子结点的编号为_,若它有右孩子,则右孩子结点的编号为_,若它有双亲,则双亲结点的编号为_。5. 当向一个大根堆插入一个具有最大值的元素时,需要逐层_调整,直到被调整到_位置为止。6. 以二分查找方法从长度为10的有序表中查找一个元素时,平均查找长度为_。7. 表示图的三种常用的存储结构为_、_和_。8. 对于线性表(70,34,55,23,6

21、5,41,20)进行散列存储时,若选用H(K)=K %7作为散列函数,则散列地址为0的元素有_个,散列地址为6的有_个。9. 在归并排序中,进行每趟归并的时间复杂度为_,整个排序过程的时间复杂度为_,空间复杂度为_。10. 在一棵m阶B_树上,每个非树根结点的关键字数目最少为_个,最多为_个,其子树数目最少为_,最多为_。三、 运算题(每题 6 分,共24分)1. 图2写出下列中缀表达式的后缀形式:(1) 3X/(Y-2)+1(2) 2+X*(Y+3)2. 试对图2中的二叉树画出其:(1) 顺序存储表示的示意图;(2) 二叉链表存储表示的示意图。3. 判断以下序列是否是小根堆? 如果不是, 将

22、它调整为小根堆。(1) 12, 70, 33, 65, 24, 56, 48, 92, 86, 33 (2) 05, 23, 20, 28, 40, 38, 29, 61, 35, 76, 47, 100 4. 已知一个图的顶点集V和边集E分别为: V=1,2,3,4,5,6,7; E=(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,(3,5)12,(3,6)9,(4,6)4, (4,7)20,(5,6)18,(6,7)25; 按照普里姆算法从顶点1出发得到最小生成树,试写出在最小生成树中依次得到的各条边。四、 阅读算法(每题7分,共14分)1. voi

23、d AE(Stack& S) InitStack(S); Push(S,3); Push(S,4); int x=Pop(S)+2*Pop(S); Push(S,x); int i,a5=1,5,8,12,15; for(i=0;i5;i+) Push(S,2*ai); while(!StackEmpty(S) coutPop(S)left,c1,c2); c1+; if (BT-left=NULL&BT-right=NULL) c2+; ABC(BT-right,c1,c2); /if 该函数执行的功能是什么?五、 算法填空(共8分)向单链表的末尾添加一个元素的算法。Void InsertR

24、ear(LNode*& HL,const ElemType& item)LNode* newptr;newptr=new LNode;If (_)cerrMemory allocation failare!next=NULL;if (HL=NULL) HL=_;elseLNode* P=HL;While (P-next!=NULL) _;p-next=newptr; 六、 编写算法(共8分)编写从类型为List的线性表L中将第i个元素删除的算法,(假定不需要对i的值进行有效性检查,也不用判别L是否为空表。) void Delete(List& L, int i)模拟试卷一参考答案一、 单选题(

25、每题2分,共20分)1.B 2.D 3.A 4.B 5.B 6.C 7.A 8.C 9.B 10.B二、 填空题(每空1分,共26分)1. 顺序 链表 索引 散列2. O(n) O(1)3. p-next=HS;HS=p HS=HS-next4. 2i 2i+1 i/2(或i/2)5. 图3向上 根6. 2.97. 邻接矩阵 邻接表 边集数组8. 1 49. O(n) O(nlog2n) O(n)10. m/2-1 m-1 m/2 m 三、 运算题(每题6分,共24分)1. (1) 3 X * Y 2 - / 1 + (2) 2 X Y 3 + * + 2. (1)01234567891011

26、1213141516123456789 (2)见图3所示: 3. (1)不是小根堆。调整为:12,65,33,70,24,56,48,92,86,33 (2)是小根堆。 4. 普里姆算法从顶点1出发得到最小生成树为:(1,2)3, (1,3)5, (1,4)8, (4,6)4, (2,5)10, (4,7)20四、 阅读算法(每题7分,共14分)1. 30 24 16 10 2 102. 该函数的功能是:统计出BT所指向的二叉树的结点总数和叶子总数 五、 算法填空(共8分,每一空2分)newptr=NULL newptr-=data newptr p=p-next六、 编写算法(8分) voi

27、d Delete(List& L, int i) for(int j=i-1;jnext=HL; B. p-next=HL-next; HL-next=p; C. p-next=HL; p=HL; D. p-next=HL; HL=p; 2. 若顺序存储的循环队列的QueueMaxSize=n,则该队列最多可存储( )个元素. A. n B.n-1 C. n+1 D.不确定3. 下述哪一条是顺序存储方式的优点?( ) A存储密度大 B.插入和删除运算方便 C. 获取符合某种条件的元素方便 D.查找运算速度快4. 设有一个二维数组Amn,假设A00存放位置在600(10),A33存放位置在678

28、(10),每个元素占一个空间,问A23(10)存放在什么位置?(脚注(10)表示用10进制表示,m3) A658 B648 C633 D6535. 下列关于二叉树遍历的叙述中,正确的是( ) 。A. 若一个树叶是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序遍历最后一个结点B若一个点是某二叉树的前序遍历最后一个结点,则它必是该二叉树的中序遍历的最后一个结点 C若一个结点是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序最后一个结点 D若一个树叶是某二叉树的前序最后一个结点,则它必是该二叉树的中序遍历最后一个结点6. k层二叉树的结点总数最多为( ). A2k-1 B.2K+1 C.2K-1 D. 2k-17. 对线性表进行二分法查找,其前提条件是(

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1