数据结构总结范文.doc_第1页
数据结构总结范文.doc_第2页
数据结构总结范文.doc_第3页
数据结构总结范文.doc_第4页
数据结构总结范文.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据结构总结范文 数据结构总结考查目标1.理解数据结构的基本概念;掌握数据的逻辑结构、存储结构及其差异,以及各种基本操作的实现。 2.掌握基本的数据处理原理和方法的基础上,能够对算法进行设计与分析。 3.能够选择合适的数据结构和方法进行问题求解。 第一章绪论(一)基本概念1数据结构(Data Structure)是相互之间存在一种或多种特定关系的数据元素的集合。 2数据结构的三个方面的含义1)数据的逻辑结构,只抽象反映数据元素的逻辑关系,与数据存储无关,独立于计算机;2)数据的存储结构,数据的逻辑结构在计算机存储器中的实现,是逻辑结构用计算机语言的实现,它依赖于计算机语言。 分为顺序存储结构和链式存储结构。 3)数据的运算,定义在逻辑结构上,每种逻辑结构都有一个运算集合。 常用的运算检索/插入/删除/更新/排序。 3根据数据元素间关系的基本特性,有四种基本数据结构集合数据元素间除“同属于一个集合”外,无其它关系线性结构一个对一个,如线性表、栈、队列树形结构一个对多个,如树图状结构多个对多个,如图4数据类型一个值的集合及在值上定义的一组操作的总称。 分为原子类型和结构类型。 5抽象数据类型抽象数据的组织和与之相关的操作。 优点将数据和操作封装在一起实现了信息隐藏。 6抽象数据类型ADT是在概念层上描述问题;类是在实现层上描述问题;在应用层上操作对象(类的实例)解决问题。 (二)算法的概念所谓算法(Algorithm)是描述计算机解决给定问题的操作过程(解题方法),即为解决某一特定问题而由若干条指令组成的有穷序列。 一个算法必须满足以下五个准则 (1)有穷性-执行了有限条指令后一定要终止。 (2)确定性(无二义)-算法的每一步操作都必须有确切定义,不得有任何歧义性。 (3)可行性-算法的每一步操作都必须是可行的,即每步操作均能在有限时间内完成。 (4)输入数据-一个算法有n(n=0)个初始数据的输入。 (5)输出数据-一个算法有一个或多个与输入有某种关系的有效信息的输出。 (三)对算法进行简单分析的评价准则算法的评价准则首先,算法必须是“正确”的,其次 (1)执行算法所耗费的时间(效率要高)。 (2)执行算法所耗费的存储空间(主要考虑辅存空间;低存储要求)。 (3)算法的可读性、易维护性要好(易于理解,易于编码,易于调试)。 (四)什么是问题的规模?时间复杂度?渐近时间复杂度? (1)问题的规模(size)-算法求解问题的输入量(或初始数据量)。 不考虑机器软硬件环境时算法的时间耗费设执行每条语句所需时间为单位时间,则一个算法耗费的时间=所有语句的频度之和。 (2)时间复杂度T(n)-时间耗费,它是算法求解问题n的函数。 (3)渐近时间复杂度-即当问题的规模n时的时间复杂度T(n)的数量级(阶),记作T(n)=O(f(n)*评价一个算法的时间性能,主要标准是算法的渐近时间复杂度第二章线性表(一)线性表的定义和基本操作P18-P19线性表:是由n(n=0)个数据元素(结点)a1,a2,a3,an组成的有限序列。 基本操作: (1)存取; (2)插入; (3)删除; (4)查找; (5)合并; (6)分解 (7)排序; (8)求线性表的长度(二)线性表的实现1.顺序存储结构顺序表的描述Fig2-1/线性表的动态分配顺序存储结构/#define List_INIT_SIZE100/线性表存储空间的初始分配量。 #define LISTINCREMENT10/线性表存储空间的分配增量typedef structElemType*elem;/分配空间基址int Lenth;/当前长度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=0或删除位置不适当,则输出错误信息,并返回-1;当10)个结点的有限集T,其中 (1)有且仅有一个特定的结点,称为树的根(root) (2)当n1时,其余结点可分为m(m0)个互不相交的有限集T1,T2,Tm,其中每一个集合本身又是一棵树,称为根的子树(subtree)基本术语结点、结点的度、叶子、孩子、双亲、兄弟、树的度、结点的层次、深度、森林(二)二叉树1.二叉树的定义及其主要二叉树性质定义二叉树是n(n?0)个结点的有限集,它或为空树(n=0),或由一个根结点和两棵分别称为左子树和右子树的互不相交的二叉树构成二叉树性质及其证明1))1(21?iii个结点层上至多有在二叉树的第2)深度为k的二叉树至多有12?k个结点(k1)3)对任何一棵二叉树T,如果其终端结点/叶子数为n0,度为2的结点数为n2,则n0=n2+14)具有n个结点的完全二叉树的深度为?1+log2n5)如果对一棵有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的结点和一个指向开始结点的*BiTree类型的头指针构成二叉树的链式存储结构称二叉链表。 二叉链表由根指针唯一确定。 在n个结点的二叉链表中有2n个指针域,其中n+1个为空。 3.二叉树的遍历以及应用PPT26-47前序遍历、中序遍历、后序遍历。 时间复杂度为O(n)4.线索二叉树的基本概念和构造线索二叉树利用二叉链表中的n+1个空指针域存放指向某种遍历次序下的前趋和后继结点的指针,这种指针称线索。 加线索的二叉链表称线索链表。 相应二叉树称线索二叉树。 构造Fig6-2了解遍历中序线索二叉树(三)树、森林1.树的存储结构 (1)双亲链表表示法为每个结点设置一个parent指针,就可唯一表示任何一棵树。 Data|parent (2)孩子链表表示法为每个结点设置一个firstchild指针,指向孩子链表头指针,链表中存放孩子结点序号。 Data|firstchild。 (3)双亲孩子链表表示法将以上方法结合。 Data|parent|firstchild (4)孩子兄弟链表表示法附加两个指向左孩子和右兄弟的指针。 Leftmostchild|data|rightsibling2.森林与二叉树的转换(了解) (1)树、森林与二叉树的转换1)树与二叉树的转换1所有兄弟间连线;2保留与长子的连线,去除其它连线。 该二叉树的根结点的右子树必为空。 2)森林与二叉树的转换1将所有树转换成二叉树;2将所有树根连线。 (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)条边的称有向完全图;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个顶点的图,G的邻接矩阵A是具有以下性质的n阶方阵:?=,其它0E(G)v,iv或)v,i(v若1,Ajjji数据结构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),InsertARC(G,v,w),DeleteVex(G,v),DeleteARC(G,v,w)(三)图的遍历PPT55-641.深度优先搜索(DFS)/遍历方法与算法(了解算法)2.广度优先搜索(BFS)/遍历方法与算法(了解算法)(四)图的基本应用及其复杂度分析1.生成树-所有顶点均由边连接在一起,但不存在回路的图。 有深度优先生成树与广度优先生成树。 构造连通网的最小代价生成树(最小生成树)问题,常用算法:PPT69-78 (1)普里姆(Prim)算法 (2)克鲁斯卡尔(Kruskal)算法2.拓扑排序-把AOV网络中各顶点按照它们相互之间的优先关系排列成一个线性序列的过程。 拓扑排序的方法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可达的最短路径长度.if Dj+arcsj,k (4)重复 (2)、 (3)共n-1次;即可求得从v到图上其余各顶点的最短路径第九章查找(一)查找的基本概念1.查找的同时对表做修改操作(如插入或删除)则相应的表称之为动态查找表,否则称之为静态查找表。 2.衡量一个查找算法次序优劣的标准是在查找过程中对关键字需要执行的平均比较次数(即平均查找长度ASL).个元素所需比较次数为找到表中第个元素的概率,为查找表中第其中个记录的表,对含有icpipcpASLniniiiniii111=?=?=(二)线性表上进行查找的方法主要有三种(静态查找表)顺序查找、折半查找/二分查找和分块查找/索引顺序表查找。 各种查找包括1)查找过程2)数据结构与算法3)查找方法的ASL(三)二叉排序树(动态查找表)1二叉排序树定义它或者是一棵空树,或者是一棵具有如下特征的非空二叉树1)若它的左子树非空,则左子树上所有结点的关键字均小于根结点的关键字;2)若它的右子树非空,则右子树上所有结点的关键字均大于等于根结点的关键字;3)左、右子树本身又都是一棵二叉排序树。 2基本操作二叉排序树的查找Fig9-1若二叉排序树为空,则查找不成功;否则1)若给定值等于根结点的关键字,则查找成功;2)若给定值小于根结点的关键字,则继续在左子树上进行查找;3)若给定值大于根结点的关键字,则继续在右子树上进行查找。 二叉排序树的插入和删除二叉排序树查找分析Fig9-2(四)平衡二叉树(了解)(五)哈希表/散列(Hash)表及其查找基本思想在记录的存储地址和它的关键字之间建立一个确定的对应关系;这样,不经过比较,一次存取就能得到所查元素的查找方法哈希函数在记录的关键字与记录的存储地址之间建立的一种对应关系哈希函数的构造方法直接定址法、数字分析法、平方取中法、折叠法、除留余数法、随机数法等。 处理冲突的方法开放定址法、再哈希法、链地址法。 哈希查找过程、哈希表的插入哈希表查找分析第十章内部排序(一)排序的基本概念排序定义将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列叫(二)排序分类按待排序记录所在位置内部排序待排序记录存放在内存外部排序排序过程中需对外存进行访问的排序按排序依据原则插入排序直接插入排序、折半插入排序、希尔排序交换排序冒泡排序、快速排序选择排序简单选择排序、堆排序归并排序2-路归并排序基数排序1.排序算法的基本操作1)比较关键字的大小;2)改变指向记录的指针或移动记录本身。 2.评价排序方法的标准1)执行时间;2)所需辅助空间,辅

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论