数据结构思维导图

2020-08-28  本文已影响0人  sakura579

数据结构

第一章:数据结构的

基本概念

定义

逻辑结构

物理结构

算法的五个特征

算法的复杂度

概要: 复杂度计算为重点

第二章:线性表

线性表的逻辑结构

线性表的顺序存储结构

顺序表的操作

线性表的链式存储结构

单链表的操作

双链表

循环链表&&静态链表

第三章:栈和队列

队列

栈的应用

第四章:树

树的基本概念

树的存储结构

二叉树

二叉树的存储结构

二叉树的遍历

线索二叉树

哈夫曼树和哈夫曼编码

第五章:图

图的基本概念

图的存储结构

图的遍历

图的应用

假设从顶点0出发,也就是顶点0为源点,集合S最初只包含顶点0,邻接矩阵arcs表示带权有向图,arcs[i][j]表示有向边<i,j>的权值,若不存在有向边<i,j>,则arcs[i][j]为∞。Dijkstra算法的步骤如下:
1)初始化:集合S初始为{0},dist[]的初始值dist[i]=arcs[0][i],i=1,2,…,n-1。
2)找出dist[]中的最小值dist[j],将顶点j加入集合S,即修改s[vj]=1。
3)修改从v0出发到集合V-S上任一顶点vk可达的最短路径长度:如果dist[j] + arcs[j][k]< dist[k],则令dist[k]=dist[j] + arcs[j][k]。另外更新path[k]=j(也就是顶点j加入集合之后如果有新的路径使得到顶点k路径变短的话就将到顶点k的路径长度修改成较短的)
4)重复2)~3)操作共n-1次,直到所有的顶点都包含在S中。
* 弗洛伊德
* 所有顶点到所有顶点的最短路径
* 算法思想:
递推产生一个n阶方阵序列A(−1),A(0),…,A(k),…,A(n−1)
其中A(k)[i][j]表示从顶点vi到顶点vj的路径长度,k表示绕行第k个顶点的运算步骤。初始时,对于任意两个顶点vi和vj,若它们之间存在边,则以此边上的权值作为它们之间的最短路径长度;若它们之间不存在有向边,则以∞作为它们之间的最短路径长度。以后逐步尝试在原路径中加入顶点k(k=0,1,…,n-1)作为中间顶点。如果增加中间顶点后,得到的路径比原来的路径长度减少了,则以此新路径代替原路径
* 非带权图
* 两点之间经过边数最少的路径
* 带权图
* 两点之间经过的边上权值之和最小的路径

第六章:查找

查找的基本概念和顺序查找

折半查找

分块查找

②在确定的块中查找待查找值(顺序查找)

二叉排序树

平衡二叉树(AVL树)

B树和B+树

散列表

第七章:排序

排序的基本知识

插入类排序

交换类排序

选择类排序

归并排序

基数排序

外部排序

二叉树与树与森林

树与二叉树

森林与二叉树

树与森林的遍历

上一篇 下一篇

猜你喜欢

热点阅读