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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构总结.docx

1、数据结构总结数据结构总结 考查目标1.理解数据结构的基本概念;掌握数据的逻辑结构、存储结构及其差异,以及各种基本操作的实现。2.掌握基本的数据处理原理和方法的基础上,能够对算法进行设计与分析。3.能够选择合适的数据结构和方法进行问题求解。第一章 绪论(一)基本概念 1数据结构(Data Structure):是相互之间存在一种或多种特定关系的数据元素的集合。2数据结构的三个方面的含义:1)数据的逻辑结构,只抽象反映数据元素的逻辑关系,与数据存储无关,独立于计算机;2)数据的存储结构,数据的逻辑结构在计算机存储器中的实现,是逻辑结构用计算机语言的实现,它依赖于计算机语言。分为顺序存储结构和链式存

2、储结构。3)数据的运算,定义在逻辑结构上,每种逻辑结构都有一个运算集合。常用的运算:检索/插入/删除/更新/排序。3根据数据元素间关系的基本特性,有四种基本数据结构:集合 数据元素间除“同属于一个集合”外,无其它关系线性结构:一个对一个,如线性表、栈、队列树形结构:一个对多个,如树图状结构:多个对多个,如图4数据类型:一个值的集合及在值上定义的一组操作的总称。分为:原子类型和结构类型。5抽象数据类型:抽象数据的组织和与之相关的操作。优点:将数据和操作封装在一起实现了信息隐藏。6抽象数据类型ADT:是在概念层上描述问题;类:是在实现层上描述问题;在应用层上操作对象(类的实例)解决问题。(二)算法

3、的概念所谓算法(Algorithm)是描述计算机解决给定问题的操作过程(解题方法),即为解决某一特定问题而由若干条指令组成的有穷序列。一个算法必须满足以下五个准则:(1)有穷性-执行了有限条指令后一定要终止。(2)确定性(无二义)-算法的每一步操作都必须有确切定义,不得有任何歧义性。(3)可行性-算法的每一步操作都必须是可行的,即每步操作均能在有限时间内完成。(4)输入数据-一个算法有n(n=0)个初始数据的输入。(5)输出数据-一个算法有一个或多个与输入有某种关系的有效信息的输出。(三)对算法进行简单分析的评价准则算法的评价准则首先,算法必须是“正确”的,其次:(1)执行算法所耗费的时间(效

4、率要高)。(2)执行算法所耗费的存储空间(主要考虑辅存空间;低存储要求)。(3)算法的可读性、易维护性要好(易于理解,易于编码,易于调试)。(四)什么是问题的规模?时间复杂度?渐近时间复杂度?(1)问题的规模(size)-算法求解问题的输入量(或初始数据量)。不考虑机器软硬件环境时算法的时间耗费:设:执行每条语句所需时间为单位时间,则:一个算法耗费的时间=所有语句的频度之和。(2)时间复杂度T(n)-时间耗费,它是算法求解问题n的函数。(3)渐近时间复杂度-即当问题的规模n时的时间复杂度T(n)的数量级(阶),记作:T(n)=O(f(n)*评价一个算法的时间性能,主要标准是算法的渐近时间复杂度

5、 第二章 线性表(一)线性表的定义和基本操作 P18-P19线性表:是由n(n=0)个数据元素(结点)a1,a2,a3, an组成的有限序列。基本操作: (1)存取;(2)插入;(3)删除;(4)查找;(5)合并;(6)分解(7)排序;(8)求线性表的长度(二)线性表的实现1.顺序存储结构 顺序表的描述:Fig2-1/线性表的动态分配顺序存储结构 /#define List_INIT_SIZE 100 /线性表存储空间的初始分配量。#define LISTINCREMENT 10 /线性表存储空间的分配增量typedef struct ElemType *elem; /分配空间基址 int L

6、enth; /当前长度 int Listsize; /当前分配的存储容量(以sizeof(ElemType)为单位)Sqlist;1) 在顺序表中实现插入算法的思想、算法和求T(n)的方法。算法思想:Fig2-2若i=n+1,则将x插入到表尾;若表长度n0或插入位置不适当,则输出错误信息,并返回-1;当1=I=n时,则从表尾开始到I个依次向后移动一个位置(共需移动n-I+1个数据元素)。最后将x存入vI中,表长n增1插入成功,函数返回值为0。算法和求T(n)的方法:P242) 在顺序表中实现删除算法的思想、算法和求T(n)的方法。 算法思想:若i=n,只需删除终端结点,不用移动结点;若表长度n

7、=0或删除位置不适当,则输出错误信息,并返回-1;当1=I0)个结点的有限集T,其中:(1) 有且仅有一个特定的结点,称为树的根(root)(2) 当n1时,其余结点可分为m(m0)个互不相交的有限集T1,T2,Tm,其中每一个集合本身又是一棵树,称为根的子树(subtree)基本术语结点、结点的度、叶子、孩子、双亲、兄弟、树的度、结点的层次、深度、森林(二)二叉树1.二叉树的定义及其主要二叉树性质定义:二叉树是n(n 0)个结点的有限集,它或为空树(n=0),或由一个根结点和两棵分别称为左子树和右子树的互不相交的二叉树构成二叉树性质及其证明:1)2)深度为k的二叉树至多有个结点(k1)3)对

8、任何一棵二叉树T,如果其终端结点/叶子数为n0,度为2的结点数为n2,则n0=n2+14)具有n个结点的完全二叉树的深度为5)如果对一棵有n个结点的完全二叉树的结点按层序编号,则对任一结点i(1in),有: (1) 如果i=1,则结点i是二叉树的根,无双亲;如果i1,则其双亲是i/2 (2) 如果2in,则结点i无左孩子;如果2in,则其左孩子是2i (3) 如果2i+1n,则结点i无右孩子;如果2i+1n,则其右孩子是2i+12.二叉树的顺序存储结构和链式存储结构顺序存储结构:按满二叉树的结点层次编号,依次存放二叉树中的数据元素链式存储结构:Fig6-1在二叉树中所有类型为BiTNode的结

9、点和一个指向开始结点的*BiTree类型的头指针构成二叉树的链式存储结构称二叉链表。二叉链表由根指针唯一确定。在n个结点的二叉链表中有2n个指针域,其中n+1个为空。3.二叉树的遍历以及应用 PPT26-47前序遍历、中序遍历、后序遍历。时间复杂度为O(n)4.线索二叉树的基本概念和构造线索二叉树:利用二叉链表中的n+1个空指针域存放指向某种遍历次序下的前趋和后继结点的指针,这种指针称线索。加线索的二叉链表称线索链表。相应二叉树称线索二叉树。构造:Fig6-2了解遍历中序线索二叉树(三)树、森林1.树的存储结构(1)双亲链表表示法:为每个结点设置一个parent指针,就可唯一表示任何一棵树。D

10、ata|parent (2)孩子链表表示法:为每个结点设置一个firstchild指针,指向孩子链表头指针,链表中存放孩子结点序号。Data|firstchild。 (3)双亲孩子链表表示法:将以上方法结合。Data|parent|firstchild (4)孩子兄弟链表表示法:附加两个指向左孩子和右兄弟的指针。Leftmostchild|data|rightsibling2.森林与二叉树的转换 (了解)(1)树、森林与二叉树的转换1)树与二叉树的转换:1所有兄弟间连线;2保留与长子的连线,去除其它连线。该二叉树的根结点的右子树必为空。 2)森林与二叉树的转换:1将所有树转换成二叉树;2将所有

11、树根连线。 (2)二叉树与树、森林的转换。是以上的逆过程。3.树和森林的遍历前序遍历一棵树等价于前序遍历对应二叉树;后序遍历等价于中序遍历对应二叉树。(四)树的应用 哈夫曼(Huffman)树和哈夫曼编码 PPT73-88第七章 图(一)图的概念1.图:图G是由顶点集V和边集E组成,顶点集是有穷非空集,边集是有穷集;2.G中每条边都有方向称有向图;有向边称弧;边的始点称弧尾;边的终点称弧头;G中每条边都没有方向的称无向图。3.顶点n与边数e的关系:无向图的边数e介于0n(n-1)/2之间,有n(n-1)/2条边的称无向完全图;有向图的边数e介于0n(n-1)之间,有n(n-1)条边的称有向完全

12、图;4.无向图中顶点的度是关联与顶点的边数;有向图中顶点的度是入度与出度的和。所有图均满足:所有顶点的度数和的一半为边数。5.图G(V,E),如V是V的子集,E是E的子集,且E中关联的顶点均在V中,则G(V,E)是G的子图。 6.在无向图中,任意两个顶点都有路径连通称连通图;极大连通子图称连通分量;7.在有向图中,任意顺序两个顶点都有路径连通称强连通图;极大连通子图称强连通分量;8.将图中每条边赋上权,则称带权图为网络。(二)图的存储及基本操作1.邻接矩阵法-邻接矩阵是表示顶点间相邻关系的矩阵。n个顶点就是n阶方阵。无向图是对称矩阵;有向图行是出度,列是入度。定义:设G=(V,E)是有n1个顶

13、点的图,G的邻接矩阵A是具有以下性质的n阶方阵: 数据结构:Fig7-12.邻接表法-为图中每个顶点建立一个单链表,第i个单链表中的结点表示依附于顶点Vi的边(有向图中指以Vi为尾的弧)。数据结构:Fig7-23邻接矩阵表示法与邻接表表示法的比较:1) 邻接矩阵是唯一的,邻接表不唯一;2) 存储稀疏图用邻接表,存储稠密图用邻接矩阵;3) 求无向图顶点的度都容易,求有向图顶点的度邻接矩阵较方便;4) 判断是否是图中的边,邻接矩阵容易,邻接表最坏时间为O(n);5) 求边数e,邻接矩阵耗时为O(n2),与e无关,邻接表的耗时为O(e+n);4基本操作 InsertVex(G, v),InsertA

14、RC(G, v, w), DeleteVex(G, v), DeleteARC(G, v, w) (三)图的遍历 PPT55-641. 深度优先搜索(DFS)/遍历方法与算法(了解算法)2. 广度优先搜索(BFS)/遍历方法与算法(了解算法)(四)图的基本应用及其复杂度分析1.生成树-所有顶点均由边连接在一起,但不存在回路的图。有深度优先生成树与广度优先生成树。构造连通网的最小代价生成树(最小生成树)问题,常用算法: PPT69-78 (1)普里姆(Prim)算法 (2)克鲁斯卡尔(Kruskal)算法2.拓扑排序-把AOV网络中各顶点按照它们相互之间的优先关系排列成一个线性序列的过程。拓扑排

15、序的方法:1)在有向图中选一个没有前驱的顶点且输出之2)从图中删除该顶点和所有以它为尾的弧3)重复上述两步,直至全部顶点均已输出;或者当图中不存在无前驱的顶点为止3.关键路径-路径长度最长的路径。求关键路径步骤。4.最短路径-从某个源点到其余各顶点的最短路径迪杰斯特拉(Dijkstra)算法实现:(1) S:表示已找到从v出发的最短路径的终点的集合; S=v(初值) Di:表示当前所找到的从v到终点vi的最短路径的长度. viV(2) 选择vj, 使得Dj=minDi| viV-S, vj为当前求得的从v出发的最短路径的终点,令 S=Sj(3) 修改从v出发到集合V-S上任一顶点Vk可达的最短

16、路径长度. if Dj+arcsj,kDk Dk=Dj+arcsjk(4) 重复(2)、(3)共n-1次; 即可求得从v到图上其余各顶点的最短路径第九章 查找(一)查找的基本概念1.查找的同时对表做修改操作(如插入或删除)则相应的表称之为动态查找表,否则称之为静态查找表。2.衡量一个查找算法次序优劣的标准是在查找过程中对关键字需要执行的平均比较次数(即平均查找长度ASL).(二)线性表上进行查找的方法主要有三种:(静态查找表)顺序查找、折半查找/二分查找和分块查找/索引顺序表查找。各种查找包括:1)查找过程2)数据结构与算法3)查找方法的ASL(三)二叉排序树 (动态查找表)1二叉排序树定义:

17、它或者是一棵空树,或者是一棵具有如下特征的非空二叉树:1)若它的左子树非空,则左子树上所有结点的关键字均小于根结点的关键字;2)若它的右子树非空,则右子树上所有结点的关键字均大于等于根结点的关键字; 3)左、右子树本身又都是一棵二叉排序树。2基本操作二叉排序树的查找 Fig9-1若二叉排序树为空,则查找不成功;否则 1)若给定值等于根结点的关键字,则查找成功; 2)若给定值小于根结点的关键字,则继续在左子树上进行查找; 3)若给定值大于根结点的关键字,则继续在右子树上进行查找。二叉排序树的插入和删除二叉排序树查找分析Fig9-2(四)平衡二叉树(了解)(五)哈希表/散列(Hash)表及其查找基

18、本思想:在记录的存储地址和它的关键字之间建立一个确定的对应关系;这样,不经过比较,一次存取就能得到所查元素的查找方法哈希函数在记录的关键字与记录的存储地址之间建立的一种对应关系哈希函数的构造方法:直接定址法、数字分析法、平方取中法、折叠法、除留余数法、随机数法等。处理冲突的方法:开放定址法、再哈希法、链地址法。哈希查找过程、哈希表的插入哈希表查找分析第十章 内部排序(一)排序的基本概念排序定义将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列叫(二)排序分类按待排序记录所在位置内部排序:待排序记录存放在内存外部排序:排序过程中需对外存进行访问的排序按排序依据原则插入排序:直接

19、插入排序、折半插入排序、希尔排序交换排序:冒泡排序、快速排序选择排序:简单选择排序、堆排序归并排序:2-路归并排序基数排序1.排序算法的基本操作:1)比较关键字的大小;2)改变指向记录的指针或移动记录本身。2.评价排序方法的标准:1)执行时间;2)所需辅助空间,辅助空间为O(1)称就地排序;另要注意算法的复杂程度。(三)各种内部排序算法的比较排序方法平均时间最坏情况最好情况辅助空间稳定性插入排序O(n2)O(n2)O(n)O(1)选择排序O(n2)O(n2)O(n2)O(1)冒泡排序O(n2)O(n2)O(n)O(1)快速排序O(nlogn)O(n2)O(nlogn)O(nlogn)归并排序O(nlogn)O(nlogn)O(nlogn)O(n)堆排序O(nlogn)O(nlogn)O(nlogn)O(1)基数排序O(d*n)O(d*n)O(d*n)O(n) 考试题型1 选择题 102 填空题 163 简答题 54 4 算法 20

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

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