




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、期末复习,第一章 绪论,数据结构的基本概念和术语 数据、数据元素、数据项、数据对象、数据结构等基本概念 数据结构的逻辑结构,存储结构及数据运算的含义及其相互关系 数据结构的四种逻辑结构及四种常用的存储表示方法 抽象数据类型的概念及其与数据结构的关系,算法的描述和分析 算法、算法的时间复杂度和空间复杂度的概念 算法描述和算法分析的方法,第二章 线性表,线性表的逻辑结构 线性表的逻辑结构特征 线性表上定义的基本运算,并能利用基本运算构造出较复杂的运算,线性表的顺序存储结构 顺序表的存储方式及它如何映射线性表中元素之间的逻辑关系 顺序表的存储结构定义 线性表基本运算在顺序表上的实现方法及其时间性能分
2、析 利用顺序表设计算法解决应用问题,设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。 解题思路:在递增有序的顺序表中插入一个元素x,首先应查找待插入元素的位置。因顺序表元素递增有序,采用折半查找法比顺序查找效率要高。查到插入位置后,从此位置直到线性表尾依次向后移动一个元素位置,之后将元素x插入即可。假设顺序表va存放在数组A中(假设下标从1开始)。,void Insert(ElemType A,int size, ElemType x)。 low=1;high=num; /假设下标从1开始 while(lowx)high=mid-1 ;else
3、low=mid+1 ; for(i=num;i=low;i-) Ai+1=Ai;元素后移。 Ai+1=x; 将元素x插入。 算法结束,线性表的链式存储结构 链表的存储方式及它如何映射线性表中元素之间的逻辑关系 链表中头指针和头节点的使用 单链表、双链表、循环链表在链接方式上的区别 各种链表的存储结构定义 线性表基本运算在链表上的实现方法及其时间性能分析 循环链表上尾指针取代头指针的作用 利用链表设计算法解决简单的应用问题,已知线性表中的元素以值递增有序排列,并以单链表(带头结点)作为存储结构,试写一算法删除表中所有值大于mink且小于maxk的元素。 解题思路:首先找到最后一个元素值小于等于m
4、ink的结点位置(q);再往后依次删除结点直到第一个值大于等于maxk结点为止。,void delete(sqlist *la,int mink,int mark) sqlist *p,*q,; q=la;p=la-next; while (p ,写出单链表(带头结点)就地逆置算法。,void reverse(linklist *h) linklist p,q; p=h-next; h-next=NULL; while(p!=null) q=p; /q指向当前结点 p=p-next; /p指向下一个结点 q-next=h-next; /将*q插入到*h之后 h-next=q; ,顺序表和链表的
5、比较 顺序表和链表的主要优缺点 根据应用问题的时空要求,为线性表选择合理的存储结构,第三章 栈与队列,栈的逻辑结构,存储结构及其相关算法 栈的逻辑结构特点,栈与线性表的关系 顺序栈和链栈的存储结构定义 顺序栈和链栈上进栈、退栈等基本运算的实现方法 栈上的“上溢”和“下溢”的概念及其判别条件 递归过程中栈的作用 设计递归程序的原则和方法 利用栈设计算法解决简单的应用问题,假设以S和X分别表示入栈和出栈操作,则对初态和终态均为空的栈操作可由S和X组成的序列表示(如SXSX)。 (1)试指出判别给定序列是否合法的一般规则。 (2)两个不同合法序列(对同一输入序列)能否得到相同的输出元素序列?如能得到
6、,请举列说明。,(1)通常有两条规则。第一是给定序列中S的个数和X的个数相等;第二是从给定序列的开始,到给定序列中的任一位置,S的个数要大于或等于X的个数。 (2)可以得到相同的输出元素序列。例如,输入元素为A,B,C,则两个输入的合法序列ABC和BAC均可得到输出元素序列ABC。对于合法序列ABC,我们使用本题约定的SSS操作序列;对于合法序列BAC,我们使用SSS操作序列。,试证明:若借助栈由输入序列1,2,n得到输出序列为P1,P2,Pn(它是输入序列的一个排列),则在输出序列中不可能出现这样的情形:存在着ijk,使PjPkPi。,如果ipj的情况,则说明要将pj压到pi之上,也就是在p
7、j出栈之后pi才能出栈。这就说明,对于ijk,不可能出现pjpkpi的输出序列。换句话说,对于输入序列1,2,3,不可能出现3,1,2的输出序列。,队列的逻辑结构,存储结构及其相关算法 队列的逻辑结构特点,队列与线性表的关系 顺序队列和链队列的存储结构定义(PASCAL语言的类型描述) 顺序队列(主要是循环队列)和链队列上入队、出队等基本运算的实现方法 队列的“上溢”和“下溢”的概念及其判别条件 循环队列取代普通的顺序队列的原因 利用队列设计算法解决简单的应用问题,在一个循环链队中只有尾指针(记为rear,结点结构为数据域data,指针域next),请给出这种队列的入队和出队操作的实现过程(算
8、法)。,void EnQueue (LinkedList rear, ElemType x) s= (LinkedList) malloc (sizeof(LNode); /申请结点空间 s-data=x; s-next=rear-next; /将s结点链入队尾 rear-next=s; rear=s; /rear指向新队尾 ,void DeQueue (LinkedList rear) if (rear-next=rear) printf(“队空n”); exit(0); s=rear-next-next; /s指向队头 rear-next-next=s-next; /队头出队。 print
9、f (“出队元素是”,s-data); if (s=rear) rear=rear-next; /空队列 free(s); ,第四章 串,串及其运算 串的概念及其与线性表的关系 串上定义的基本运算,并能利用基本运算构造出较复杂的运算,串的存储结构和基本运算的实现 串的两种主要存储结构顺序串和链串的存储结构定义(C语言的类型描述) 顺序串上串的基本运算的实现 朴素的模式匹配算法与KMP算法的算法思想及时间复杂度分析 KMP算法中next和nextval数组的求值方法,求模式串t1=aaab,t2=abcabaa , t3=adabbadada的next和nextval数组值,第六章 树,树的概念
10、 树的逻辑结构特征 树的常用术语及含义,二叉树 二叉树的定义,二叉树与树的差别 完全二叉树和满二叉树的概念 二叉树的性质 二叉树的顺序存储结构和链式存储结构的定义(C语言的类型描述)和表示方法,二叉树的遍历 二叉树的先序、中序、后序、层序遍历算法 求给定二叉树的先序、中序、后序遍历对应的结点访问序列 由二叉树的先序和中序、中序和后序、中序和层序的序列确定二叉树 以遍历算法为基础,设计有关算法解决简单的应用问题,线索二叉树 二叉树线索化的目的 线索二叉树存储结构的表示方法 在线索二叉树中查找给定结点的前趋和后继的方法,树和森林 树和森林与二叉树之间的转换方法和对应关系 树的各种存储结构的表示方法
11、及其特点 树的先序和后序遍历方法 森林的先序和中序遍历方法,哈夫曼树及其应用 最优二叉树的概念及特点 求哈夫曼树的方法 设计哈夫曼编码的方法,一、下面是用c语言编写的对不带头结点的单链表进行就地逆置的算法,该算法用L返回逆置后的链表的头指针,试在空缺处填入适当的语句(不允许使用额外的辅助变量)。 void reverse(linklist 二、假设以I和O分别表示入栈和出栈操作。栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅由I和O组成的序列,称可以操作的序列为合法序列,否则称为非法序列。 (1)下面所示的序列中哪些是合法的? A. IOIIOIOO B. IOOIOIIO C. III
12、OIOIO D. IIIOOIOO (2)通过对(1)的分析,写出一个算法,判定所给的操作序列是否合法。若合法,返回TRUE,否则返回FALSE(假定被判定的操作序列已存入一维数组A中)。,三、设模式串t=abcabaa,试求出该模式串的next和nextval数组的值。 四、设一棵二叉树的先序、中序遍历序列分别为 先序遍历序列: A B D F C E G H 中序遍历序列: B F D A G E H C (1)画出这棵二叉树。 (2)画出这棵二叉树的后序线索树。 (3)将这棵二叉树转换成对应的树(或森林)。,第七章 图,图的概念 图的逻辑结构特征 图的常用术语及含义 图的存储结构 图的邻
13、接矩阵的存储结构定义及表示法和特点 图的邻接表的存储结构定义及表示法和特点,图的遍历 图的深度优先搜索和广度优先搜索遍历算法及时间性能 确定两种遍历所得到的顶点访问序列 图的两种遍历与树的遍历之间的关系 利用图的两种遍历设计算法解决简单的应用问题,生成树和最小生成树 生成树和最小生成树的概念 对给定的图画出深度和广度优先生成树或生成森林 Prim和Kruskal算法的基本思想 对给定的连通图,根据Prim和Kruskal算法构造出最小生成树,有向无环图的应用 拓扑排序的基本思想和步骤 拓扑排序不成功的原因 求给定AOV网的拓扑序列 关键路径、关键活动的概念 求AOE网的关键路径的步骤和方法 对
14、给定的AOE网,求关键路径和工期,最短路径 最短路径的含义 求单源最短路径的Dijkstra算法的基本思想和时间性能 对于给定的有向图,画出根据Dijkstra算法求单源最路径的过程示意图 求每一对顶点间最短路径的Floyd算法的基本思想和时间性能 A (k) i,j (1kn)的含义 对于给定的有向图,用Floyd算法求每一对顶点之间的最短路径长度,能写出A(0) ,(1) ,(n) 的值,1.请给出所示有向图的 1)每个顶点的入/出度; 2)邻接矩阵; 3)逆邻接表; 4)强连通分量。 2.画出所示无向图的邻接表,它所 邻接到的顶点序号由小到大排列, 列出从顶点1出发深度优先和广度 优先搜
15、索遍历该图所得顶点序列 和边的序列。,1 5,6,2 4,3,1,5 2,4,6 3,3.分别画出按以下两种算法求所示无向带权图的最小生成树的过程 1)Prim算法 2)Kruskal算法 4.试列出下图中全部可能 的拓扑有序序列,并指 出应用教材182页 算法toposort求得的是哪一个。,a,b,c,e,d,f,g,h,4,9,3,2,6,5,3,5,5,7,6,5,4,5,1 2 3,5 6 4,5.对于如下AOE网络,计算各活动弧的e(ai)和l(ai)函数值,列出关键路径。,1,2,3,4,5,6,7,8,9,a1=6,a2=4,a3=5,a4=1,a5=1,a6=2,a7=9,a
16、8=8,a9=4,a10=2,a11=4,第九章 查找,基本概念 静态查找表和动态查找表的含义 平均查找长度ASL的定义,静态查找表 顺序查找、折半查找、分块查找的算法思想、算法实现、ASL的分析计算 折半查找对存储结构和关键字的要求 三种查找方法的主要优缺点,动态查找表 二叉排序树的定义、特点和用途 二叉排序树的查找方法和算法实现、ASL的分析和计算 二叉排序树的插入、删除、建树方法 输入实例对所建二叉排序树形态的影响 平衡二叉树的定义和作用,哈希表 哈希表、哈希函数、哈希地址和装填因子等有关概念 哈希函数的选取原则及产生冲突的原因 常用的哈希函数的构造方法 解决冲突的主要方法 产生“堆积”
17、现象的原因 哈希表查找和其它表查找的本质区别。 采用线性探测法或拉链法解决冲突时,哈希表的建表方法、查找过程以及ASL的分析计算,1. 已知含12个关键字的有序表及其相应权值为: 1 2 3 4 5 6 7 8 9 10 11 12 关键字 A B C D E F G H I J K L 权值 4 6 3 4 9 3 2 6 1 5 3 4 (1)画出对以上有序表进行折半查找的判定树,求折半查找时查找成功的平均查找长度ASL。 (2)若为等概率查找,求折半查找时查找成功的平均查找长度ASL。,3. 已知如下长度为12的表: (Jan, Feb, Mar, Apr, May, June, Jul
18、y, Aug, Sep, Oct, Nov, Dec) (1)试按表中元素的顺序依次插入一棵初始为空的二叉排序树,请画出插入完成之后的二叉排序树,并求其在等概率的情况下查找成功的平均查找长度ASL。,选取哈希函数H(k)=(3k) MOD 11。 1) 用线性探测开放定址法处理冲突, 2) 用链地址法处理冲突 试在010的散列地址空间中对关键字序列(22, 41, 53, 46, 30, 13, 01, 67)造哈希表,并求等概率情况下查找成功时的平均查找长度和不成功时的平均查找长度以及装填因子。,第十章 内部排序,基本概念 排序方法的稳定性的含义 排序算法评价标准,插入排序 直接插入排序的基本思想、算法实现、时空性能 希尔排序的基本思想和时空性能,交换排序 冒泡排序的基本思想、算法实现、时空性能 快速排序的基本思想、算法实现、时空性能 枢轴记录的选取对快速排序的影响 针对给定的输入实例,写出快速排序的排序过程,选择排序 简单选择排序的基本思想、算法实现、时空性能 锦标赛排序的基本思想和时空性能 堆的有关概念和定义 堆的性质及堆与完全二叉树的关系 堆排序的基本思想、算法实现、时空性能 针对给定的输入实例,能写出堆排序的排序过程,归并排序 两路归并排序的基本思想、算法实现、时空性能 针对给定的输
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乐器配件精密加工技术考核试卷
- 动物用药品销售与市场预测分析考核试卷
- 刺绣艺术在充电宝的个性化设计考核试卷
- 创业项目品牌定位与市场推广考核试卷
- 劳务合同范本迁户口
- 学校铲车租赁合同范本
- 淘客推广合同范本
- 会所转让 出租合同范本
- 医疗机械购销合同范本
- 网络服装加工合同范本
- 2025年春新外研版(三起)英语三年级下册课件 Unit6第1课时Startup
- 2025江苏苏州高新区狮山商务创新区下属国企业招聘9人高频重点提升(共500题)附带答案详解
- 《蒙牛集团实施财务共享过程中存在的问题及优化建议探析》8800字(论文)
- 平抛运动的经典例题
- 录井作业现场风险评估及控制措施
- 2025年度商会工作计划
- 社区管理与服务专业实习总结范文
- 施工现场5S管理规范
- 科研方法讲座模板
- 投资学基础(第二版)教案全套 李博
- 【MOOC】中级财务会计-西南交通大学 中国大学慕课MOOC答案
评论
0/150
提交评论