数据结构导论Word文档格式.docx
- 文档编号:15780640
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:6
- 大小:18.36KB
数据结构导论Word文档格式.docx
《数据结构导论Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构导论Word文档格式.docx(6页珍藏版)》请在冰豆网上搜索。
2易读性
3健壮性
4时空性
时间复杂度:
0
(1)常数阶,(算法的时间复杂度与输入规模n无关);
O(log2n)对数阶;
O(n)线性阶;
O(nc)多项式阶;
O(Cn)指数阶。
(C为大于1的正整数)
第二章线性表
2.1线性表的基本概念
线性表是一种线性结构,它是由n(>
=o)个数据元素组成的有穷序列,数据元素又称结点。
2.2线性表的顺序存储
数据存储是最简单的一种存储方式。
线性表顺序存储的方法是:
表中的结点一次存放在计算机内存中一组连续的存储单元中。
用顺序表存储实现的线性表称为顺序表。
一般情况下元素比较和移动的次数为n—i+1。
插入的算法平均移动次数约为n/2,时间复杂度o(n)
删除算法,最坏情况下元素移动次数为n-1,时间复杂度为o(n),平均移动次数为(n-1)/2,时间复杂度O(n)
定位算法,平均时间复杂度为o(n)求表长和读表元素算法的时间复杂度为o
(1)。
2.3线性表的连接存储
线性表常见的链式存储结构有单链表,循环链表和双向链表,最简单的是单链表。
Data部分称为数据域,用于存储线性表的一个数据元素,next称为指针域,指针指向本结点所含数据元素的直接后继结点。
尾借点指针域的值Null成为空指针。
Head等于null,表示该链表无任何结点,是空单链表。
-head链表的每个结点包含有数据域和指针域,指针域存放的是下一个结点的地址。
头结点的数据域可以不存放任何信息,也可以存放一个特殊标志或表长,也可以根据算法的需要定义。
定位运算又称作按值查找
建表算法的计算的计算量约1+2+3……+n-1=n(n-1)/2,时间复杂度o(n*n)。
时间与个数成正比,时间复杂为o(n)
直接前驱结点的指针域prior,每个结点有两个指针。
双向循环链表的对称性可以用p=p->
prior->
next=p->
next->
prior。
按位置查找运算,顺序表是随机存取,时间复杂度o
(1).单链表时间复杂度o(n).
单链表的每个结点包括数据域与指针域。
第三章栈,队列和数组
3.1
允许进行插入和删除的一端称为栈顶,另一端称为栈底。
不含任何数据元素的栈称为空栈。
处于栈顶位置的数据元素称为栈顶元素。
栈的修改原则是后进先出,栈又称后进先出线性表,栈的插入和删除运算分别称进栈和出栈。
通常用一个一维数组和一个记录栈顶位置的变量来实现的顺序存储。
3.2
队列是有限个类型数据元素的线性序列,是一种先进先出的线性表,新加入的数据元素插在队列的尾端,出队列的数据元素在队列首部被删。
顺序队列结构类型中有三个域:
data,front,rear。
当队列为空时,front==rear,也为满。
解决方法,一是为队列另一个标志,用来区分是空还是满;
二是队列少用一个元素空间,当只剩下一个单元时就认为队列满。
队列的链接实现实际上是使用一个带有头结点的单链表来表示队列,称为练队列。
3.3数组的存储结构
一维数组元素的内存单元地址是连续的,二维数组可有两种存储方法:
一种是以列序为主序的存储:
另一种是一行序为主的存储。
一维数组M(n(n+1)/2)作为n阶对称矩阵。
第四章数和二叉数
4,1
线性结构中的一个结点至多只有一个直接后继,而树形结构中一个节点可以有一个或多个直接后继。
(1)当n=0时,称为空树;
(2)当n>
0时,有且仅有一个称为根的结点,除根结点外,其余结点分为m>
=0个不相交的非空集合,这些集合中的每一个都是一棵树,称为根的子树。
结点的度:
树上任意结点所拥有的子树的数目称为该结点的度。
叶子:
度为0的结点成为叶子或终端结点。
树的度;
一颗树中所有结点的度的最大值称为该树的度。
结点的层次;
从根开始算起,根的层次为1,其余结点的层次为其双亲的层次加1.
树的高度:
一棵树中所有结点层次树的最大值称为该树的高度或深度。
有序树:
若树中个结点的字树从左到右是有次序的,不能互换,称为有序树。
无序树:
若树中各结点的子树是无次序的,可以互换,则称为无序树。
4,2二叉树
二叉树是n(n>
=0)个元素的有限集合,该集合或者为空,或者由一个根及两颗互不相交的左子树和右子树组成,其中左子树和右子树均为二叉树。
4,2,2二叉树的性质
1.二叉树第i(i>
=1)层上至多有2(i-1次方)个结点。
2.深度为k(k>
=1)的二叉树至多有2k次方-1个结点。
3.对任何一棵二叉树,度数为0的结点个数为n0,度数为2的结点个数为n2,n0=n2+1.
满二叉树:
深度为k(k>
=1)且有{2(k次方)-1}个结点的二叉树。
4.含有n各结点的完全二叉树的深度为【log2n】+1.
5.如果将一棵有n个结点的完全二叉树按层编号,按层编号是指依次编为
i=1,结点A是根;
i>
1,则A的双亲的i/2
2*i>
n,结点A无左孩子,也无右孩子,;
A的右孩子;
2*I;
2*i+1>
n,无右孩子
4.3二叉树的存储结构
二叉树有两种存储结构:
顺序存储结构和链式存储结构.链式存储结构再插入删除结点时较方便.
4.5树和森林
树是一种常用的数据接结构.
孩子链表表示法:
孩子链表表示法是树的一种链式存储结构.
数据域用于存储结点x中的数据元素,指针域用于存储指向x第一个孩子结点的指针。
3双亲表示法
双亲表示法有一个维一数组构成。
数组的每个分量包含两个数据域:
数据域和双亲域。
数据域用于存储树上一个结点中数据元素,双亲域用于存储本结点的双亲结点在数组中的序号。
4.5.2树,森林,与二叉树
(1)将有兄弟结点连接起来;
(2)保留第一个兄弟结点与父结点的连接起来,断开其他兄弟结点与父结点的连接,然后以根结点为轴心按顺时针的方向旋转45度角。
4.7小结
树中每个结点最多只有一个直接前驱结点,可能有多个直接后继结点。
二叉树中每个结点最多只有一个直接前驱结点,最多可能有两个直接后继结点。
树的遍历有先序,后序和层次遍历三种。
森林的遍历有先序和中序两种。
第五章图
5.1图的定义和术语
有向图的边称为弧。
一个具有n个顶点的无向完全图的边数为n(n-1)/2.
一个具有n个顶点的有向完全图的弧数n(n-1).
无向图中顶点v的度是与该顶点相关联的边的数目,记为D(v).
路径上的边(或弧)的数目称为路径长度。
序列中顶点不重复出现的路径称为回路或环,第一个顶点和最后一个顶点相同的路径称为回路或环。
除了第一个顶点和最后一个顶点外,其余顶点不重复的回路,简称简单回路或简单环。
连通图:
图中的任意两个顶点vi和vj都是联通的.
强连通图:
对于有向图来说,如果图中任意一对顶点vi和vj都有顶点vi和vj的路径,也有从vi到vj的路径,即两个顶点间双向联通,那么称该有向图是强连通图。
有向图的极大强连通子图称为强连通分量。
无向图的邻接矩阵是一个对称矩阵。
在边稀疏的情况下,邻接表表示比邻接矩阵节省存储空间。
深度优先搜索遍历类似于树的先序遍历。
邻接表为存储结构,深度优先搜索算法的时间复杂度是o(n+e)
邻接矩阵作为存储结构,深度优先搜索算法的时间复杂度o(nn).
广度优先搜索遍历类似于树的层次遍历。
广度优先搜索邻接点具有先进先出的特征。
5.4
对于有n个顶点的无向图,所有生成树中都有且仅有n-1条边。
一个图的最小生成树是图所有生成树中权总和最小生成树。
拓扑序列:
1,图中选择一个入度为0的顶点,输出该顶点;
2.从图中删除该顶点及其相关联的弧,调整被删的弧头结点的入度(入度减1)
3.重复1.2的步骤。
任何一个无环有向图,其全部顶点可以排成一个拓扑序列。
拓扑序列算法时间度o(n+e).
第六章查找
6.2静态查找
静态查找表最简单的实现方法是以顺序表作为存储结构。
索引顺序表:
一个索引表和一个顺序表,顺序表在组织形式上与普通的顺序表完全相同,索引表本身在组织形式上也是一个顺序表。
每个索引有两个域:
块内最大键值和块起始位置。
索引表查找步骤:
1.先确定待查数据元素所在的块。
2.在块内顺序查找。
第七章排序
直接插入排序是一种简单的排序方法,时间复杂度0(nn),直接插入排序方法最稳定。
冒泡排序是一种交换排序方法,时间复杂度0(nn)冒泡排序是稳定的排序。
快速排序时间复杂度0(nlog2n).
该算法效率较低,近似于0(nn)
直接选择时间复杂度0(nn),是不稳定的。
对于n个记录进行排序所需的平均时间0(nlog2n)。
在最坏情况下时间复杂度0(nlog2n).堆排序是不稳定的。
归并时间复杂度0(nlog2n).
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 导论