基本数据结构——图
来源:互联网 发布:minitab比较多组数据 编辑:程序博客网 时间:2024/06/05 09:26
4、图
4.1 图的表示
G(V,E),G表示一个图,V是图G中顶点的集合。
4.2 各种定义
无向边:若两顶点间的边没有方向,则称为无向边。
有向边:两顶点间的边有方向,称为有向边,也叫弧。
无向完全图:任意两点之间都有边
有向完全图:任意两点之间都有两条方向护卫相反的弧
网:带有权重的图
顶点的度:和顶点相连的边的数目。有向图分为入度和出度
连通图:可以构成环路的图
4.3 图的存储结构
(1)图的邻接矩阵:用两个数组表示。一个存储顶点,一个存储边
无向图邻接矩阵
邻接边为1,非邻接边为0
邻接矩阵为对称矩阵。矩阵每行为1的数即为该行对应的顶点的度。如V0的度为3,。
有向图邻接矩阵
矩阵每行为1的点为该顶点对应出度,每列为1的点为该点对应的入度。每个顶点的度为该点所在行列入度和出度的和。
网的连通图
邻接边为权值,非邻接边和方向相反值为无穷
n个顶点e条边时间复杂度为O(n+n*n+e)
(2)邻接表
n个顶点e条边时间复杂度为O(n+e)
4.4 图的遍历
(1)深度优先遍历(DFS):类似树的前序遍历
邻接矩阵需要O(n*n),邻接表需要O(n+e)
(2)广度优先遍历(BFS):类似树的层序遍历
4.5 最小生成树
Prim算法:任意选择一点开始,找寻和该点相连的最小边。已该两顶点为起始,选择距离两点间的最小权值,依次遍历,直到所有的点都被遍历到。此时所有被遍历到的边组成的树为最小生成树。算法复杂度O(n2) .
Kruskral算法:将所有权值按大小顺序排列,找寻非联通区域。所有权值边的组合即为最小生成树。算法复杂度取决于边e,为O(elog2e)
该部分我自己也不太了解,看了点击打开链接http://www.cnblogs.com/biyeymyhjob/archive/2012/07/30/2615542.html觉得稍微懂点了。直接参照,就不班门弄斧了。
- 基本数据结构——图
- 【数据结构与算法005】基本数据结构——图
- 数据结构——图的基本操作
- 数据结构——基本数据结构之栈
- 数据结构——基本数据结构之队列
- 数据结构——基本数据结构之有根树
- 数据结构——基本数据结构之栈
- 数据结构——基本数据结构之队列
- 基本数据结构——队列
- 基本数据结构——链表
- 基本数据结构——栈
- 基本数据结构——单链表
- 基本数据结构——树
- Python——基本数据结构
- 基本数据结构——栈
- 基本数据结构——堆
- 数据结构实践—— 图基本算法库
- 数据结构之无向图基本操作(采用邻接矩阵存储)—整理严蔚敏数据结构
- 记录一下shell简单写法
- 使用opencv在debug正常release下报错
- Python里面截取指定的字符串
- Arduino学习日记(3)——使用webclientget方式发送数据后自动断开连接?
- Spark 之RDD API大全
- 基本数据结构——图
- 4.11
- 高位低位存储方式以及数组地址细节
- 题目1036:Old Bill
- 静态块 和构造器在继承情况下执行顺序
- URAL1993-This cheeseburger you don't need
- HDU 4920 Matrix multiplication 暴力(bitset)
- Maven聚合和继承
- J2EE:MVC 模式