数据结构课程总结

数据结构课程总结

ID:9268006

大小:43.00 KB

页数:8页

时间:2018-04-25

数据结构课程总结_第1页
数据结构课程总结_第2页
数据结构课程总结_第3页
数据结构课程总结_第4页
数据结构课程总结_第5页
资源描述:

《数据结构课程总结》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、课程总结(提要)一、数据结构和抽象数据类型ADT定义:一个数学模型以及定义在该模型上的一组操作。构成一个抽象数据类型的三个要素是:数据对象、数据关系、基本操作数据结构(非数值计算程序设计问题中的数学模型)·逻辑结构(描述数据元素之间的关系)线性结构——线性表、栈、队列、串、数组、广义表非线性结构——树和森林、二叉树、图集合结构——查找表、文件·存储结构(逻辑结构在存储器中的映象)按“关系”的表示方法不同而分:顺序结构—以数据元素在存储器中的一个固定的相对位置来表示“关系”链式结构—以指针表示数据元素的“后继”或“前驱”·基本操作(三类

2、)结构的建立和销毁查找——引用型操作(不改变元素间的关系)按“关系”进行检索按给定值进行检索遍历——访问结构中的每一个数据元素,且对每个元素只访问一次修改——加工型操作(改变元素间的关系)插入删除更新(删除+插入)8二、线性结构·线性表和有序表——不同存储结构的比较顺序表:可以实现随机存取;O(1)插入和删除时需要移动元素;O(n)需要预分配存储空间;适用于“不常进行修改操作、表中元素相对稳定”的场合。链表:只能进行顺序存取;O(n)插入和删除时只需修改指针;O(1)不需要预分配存储空间;适用于“修改操作频繁、事先无法估计最大表长”的

3、场合。——应用问题的算法时间复杂度的比较例如,以线性表表示集合进行运算的时间复杂度为O(n2),而以有序表表示集合进行运算的时间复杂度为O(n)·栈和队列——数据类型的特点及其应用范畴·串——和线性表的差异:数据对象不同(数据元素限定为单个字符)、基本操作集不同(串整体作为操作对象)、存储结构不同¾¾串的模式匹配算法·数组——只有引用型的操作,∴只需要顺序存储结构多维到一维的不同映象方法:以行序为主序(低下标优先)以列序为主序(高下标优先)·广义表——多层次的线性结构特性:次序性、长度、层次性、深度、递归等独有的特性:共享存储结构的特

4、点8三、非线性结构¾¾树和森林、二叉树、图·数据类型的定义(结构特点和基本操作)·存储结构·二叉树的特性及其证明方法·遍历·何谓“遍历”?对结构中的每个元素都访问到,且只被访问一次·对非线性结构的遍历需要确定一条搜索路径·两条搜索路径:深度优先搜索和广度优先搜索·逻辑定义深度优先搜索——以结构中的某个数据元素为起始点,首先访问该数据元素,然后依次以它的各个“后继”为起始点进行“深度优先搜索遍历”。其特点为:在访问了起始数据元素之后,沿着某一条“路径”(后继)向前,直至“到底”,然后退回一步找另一个后继,再向前继续,……,直至所有通路都

5、走遍。广度优先搜索——以结构中的某个数据元素为起始点,首先访问该数据元素,然后先访问其所有后继;之后其它结点的访问次序由已被访问的结点的访问次序决定:先被访问的结点的后继“优先于”后被访问的结点的后继。其特点为:在访问了起始数据元素之后,先访问它的所有后继,然后再依这些后继被访问的先后次序访问它们的后继,……,直至没有后继未被访问为止。·算法的形式描述深度优先搜索——通常采用递归的形式二叉树(先序、中序、后序)、树/图(先根、后根)一般形式算法的描述:8voidDFSearch(ADTDS,ElemTypev){//从v开始,对DS进

6、行深度优先搜索遍历if(DS){visit(v);(visited[v]=true;)w=FirstSucc(v);while(w){if(!visited[v])DFSearch(DS,w);w=NextSucc(DS,v,w);}//while}//if}//DFSearch不同数据结构(逻辑和存储)有不同写法。例如对森林,起始点只有一个(第一棵树的根),只有两个后继,且各棵树互不相交,按搜索路径上的访问次序有先序遍历和中序遍历之分。voidPreOrder_F(CSTreeT){//对以T为根指针的森林进行先序遍历if(T){v

7、isit(T->data);PreOrder_F(T->firstchild);//先序遍历第一棵树的子树森林PreOrder_F(T->nextsibling);//先序遍历其余树构成的森林}//if}//PreOrder_F或者从森林是树的集合角度来看遍历(依次从左至右依次先根遍历各棵子树)while(树)doPreOrder_T(树);voidPreOrder_T(CSTreeT){8//对以T为根指针的树进行先根遍历if(T){visit(T->data);p=T->firstchild;while(p){PreOrder_T

8、(p);//对以p为根指针的子树进行先根遍历p=p->next;}//while}//PreOrder_T·由“访问”操作的不同可以实现不同的操作具体问题具体分析,按分割求解的思想:“递归基”考虑最简单的结构(“空集”/

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。