有时间会详细介绍
1.什么是
数据结构?数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
数据分为逻辑结构和物理结构。其中:
逻辑结构是数据元素之间的逻辑关系,包括集合,线性结构(一对一),树形结构(一对多),图形结构(多对多)。
物理结构是是数据在计算机中的存储方式,包括顺序存储,链式存储,索引存储,散列存储。
2.
线性表:顺序存储,链式存储(单链表,循环单链表,双向链表,静态链表)。
3.
栈和队列(栈和队列应用非常广泛,很常用的存储方式)
栈特点: 先进后出或后进先出,所有操作都在栈顶进行。
队列特点:先进先出,数据元素的插入只能在队尾一端操作,删除在队首一端操作。
4.串,数组(
顺序存储按矩阵方式),广义表(广义表中的元素可以是原子项也可以是子表)。
5
.树(二叉数)
树:一对多关系,非线性结构,树的定义是递归的。
二叉树:1.分为左子树和右子树,每个结点只能有0,1或2个子结点。
2.分为顺序存储,链式存储。
3.二叉树的遍历(递归算法,非递归算法)。
4.线索二叉树(增加结点的直接前驱或直接后继)。
树与二叉树之间的转换(通常以孩子兄弟链表表示)。
哈夫曼树:又称最优二叉树,是一类带权路径最短的树。注:这里的权指叶子结点的权值
哈夫曼树的构造算法:
(1) 从叶子结点中选取两个权值最小和次小的结点作为左右子树
(2) 将这两个权值的和与剩余的结点权值作比较按(1)方法执行
(3)直到根结点结束
哈夫曼编码:(1)构造哈夫曼树
(2)将哈夫曼树从上到下从左到右顺序,左子树0,右子树1,根据路径得到叶子结点的编码
6.
图:分为有向图,无向图,网(带权图)。
有向图:出度(指向其他结点的弧树),入度(进入这个顶点的弧树)
图的存储结构:邻接矩阵(按行读有关的是1,无关就是0)
邻接表(对图中每个顶点都建立单链表)
图的
遍历:深度优先搜索(以邻接表存储,从顶点V0出发,并做标记访问,搜索顶点的邻接表;访问第一个未被访问的顶点V1,然后继续搜索V1的邻接表,直到全部访问)
注:如邻接表中已全部访问则返回上一级邻接表中继续查找
广度优先搜索(以队列方式实现,访问并删除队首结点V0,搜索链表,让所有的未被访问的结点依次入队;访问并删除队首结点V1,然后搜索,将未被访问的结
点依次入队,直到所有的邻接点都被访问)。
最小生成树:网中所有生成树中权值总和最小的生成树
(1)Prim(普里姆)算法:对顶点操作
从顶点V0出发,找出权值最小的边的顶点V1;再找出与顶点V0,V1权值最小的边的顶点,依次类推直到找完所有的顶点
注:图中不能存在回路
(2)Kruskal(克鲁斯卡尔)算法:对边操作
将图中所有顶点排放好,找权值最小的边连线,在有连线的顶点中继续找权值最小的边,直到连完所有顶点
注:图中不能有回路
拓扑排序-在工程应用领域中
作用:解决工程之间在时间上的制约关系
算法:(1)选一个入度为0的顶点输出
(2)将该结点所有后继顶点的入度减1
(3)重复(1)(2)两步直到输出所有结点或找不到入度为0的结点
注:针对于有向无环图,输出顺序取决于算法实现方式(栈,队列),但用栈处理较方便
关键路径-对工程所需时间的估算
关键路径也是最长路径:完成整个工程所需要的最少时间是源点(入度为0的点)到汇点(出度为0的点)之间的最长路径。
最短路径:Dijkstra(迪杰斯特拉)算法
今天就先写到这里啦
![微笑](http://static.blog.csdn.net/xheditor/xheditor_emot/default/smile.gif)