图相关知识点(上)
2017-02-13 22:43
190 查看
通过符号G=(V,E)表示,图中的顶点数|v|和边数|E|用来度量输入的规模。
使用V[G]表示一个图G的顶点集,用E[G]来表示其边集。
有两种表示方法:邻接表和邻接矩阵
无向边:边是没有方向的,写为(a,b)
有向边:边是有方向的,写为<a,b>
简单图:不存在指向自己的边,不存在两条重复边的图
无向完全图:每个顶点之间都有一条边
有向完全图:每个顶点之间都有两条互为相反的边
度:与特定顶点相连接的边数
出度:这是对于有向图而言的概念,出度表示以此为起点的边的数目,
入度:表示以此为终点的边的数目
环:第一个顶点和最后一个顶点相同的路径
简单环:除去最后一个顶点和第一个顶点没有重复顶点的环
ex:
上面的图含有如下的几个环:
(2,3)、(1,2,3,6)、(6,3)
连通图:任意两个顶点都相互连通的图;
极大连通子图:包含竟可能多的顶点(必须是连通的),即找不到另外一个顶点,使得此顶点能够连接到此极大连通子图的任意一个顶点;
连通分量:极大连通子图的数量;
强连通图:此为有向图的概念,表示任意两个顶点a,b,使得a能够连接到b,b也能连接到a 的图;
生成树:n个顶点,n-1条边,并且保证n个顶点相互连通(不存在环);
最小生成树:此生成树的边的权重之和是所有生成树中最小的;
图的存储结构:
1.邻接矩阵
维持一个二维数组,arr[i][j]表示i到j的边,如果两顶点之间存在边,则为1,否则为0;
下图为一般的有向图:
下图为带有权重的图的邻接矩阵表示法:
缺点:邻接矩阵表示法对于稀疏图来说不合理,因为太浪费空间;
如果边带有权值:
好处:创建的时间复杂度和邻接链表相同,但是能够同时计算入度和出度;
在邻接多重表中,只需要删除一个节点,即可完成边的删除,因此比较方便;
因此邻接多重表适用于对边进行删除的操作;
顶点节点和邻接表没区别,边表节点如下图:
比如:
存储边的信息,如下图:
使用V[G]表示一个图G的顶点集,用E[G]来表示其边集。
有两种表示方法:邻接表和邻接矩阵
无向边:边是没有方向的,写为(a,b)
有向边:边是有方向的,写为<a,b>
简单图:不存在指向自己的边,不存在两条重复边的图
无向完全图:每个顶点之间都有一条边
有向完全图:每个顶点之间都有两条互为相反的边
度:与特定顶点相连接的边数
出度:这是对于有向图而言的概念,出度表示以此为起点的边的数目,
入度:表示以此为终点的边的数目
环:第一个顶点和最后一个顶点相同的路径
简单环:除去最后一个顶点和第一个顶点没有重复顶点的环
ex:
上面的图含有如下的几个环:
(2,3)、(1,2,3,6)、(6,3)
连通图:任意两个顶点都相互连通的图;
极大连通子图:包含竟可能多的顶点(必须是连通的),即找不到另外一个顶点,使得此顶点能够连接到此极大连通子图的任意一个顶点;
连通分量:极大连通子图的数量;
强连通图:此为有向图的概念,表示任意两个顶点a,b,使得a能够连接到b,b也能连接到a 的图;
生成树:n个顶点,n-1条边,并且保证n个顶点相互连通(不存在环);
最小生成树:此生成树的边的权重之和是所有生成树中最小的;
图的存储结构:
1.邻接矩阵
维持一个二维数组,arr[i][j]表示i到j的边,如果两顶点之间存在边,则为1,否则为0;
下图为一般的有向图:
下图为带有权重的图的邻接矩阵表示法:
缺点:邻接矩阵表示法对于稀疏图来说不合理,因为太浪费空间;
2.邻接表
如果图示一般的图,则如下图:如果边带有权值:
3.十字链表
好处:创建的时间复杂度和邻接链表相同,但是能够同时计算入度和出度;
4.邻接多重表
针对无向图; 如果我们只是单纯对节点进行操作,则邻接表是一个很好的选择,但是如果我们要在邻接表中删除一条边,则需要删除四个顶点(因为无向图);在邻接多重表中,只需要删除一个节点,即可完成边的删除,因此比较方便;
因此邻接多重表适用于对边进行删除的操作;
顶点节点和邻接表没区别,边表节点如下图:
比如:
5.边集数组
适合依次对边进行操作;存储边的信息,如下图:
相关文章推荐
- Java同步、异步相关知识点
- JavaScript第六章知识点总结——JavaScript常用DHTML对象 Document相关对象 事件处理
- ffmpeg调试相关知识点
- HttpEntity类的相关知识点(MultipartEntity)
- 类的成员变量的定义和初始化相关知识点
- C语言面试相关知识点
- jsessionid 相关知识点
- Oracle-批量修改语句及相关知识点
- jQuery的相关知识点
- SSH相关知识点
- android View的相关知识点
- XML的相关知识点
- 多线程的相关知识点梳理
- ARM-Linux驱动相关头文件知识点
- Hadoop相关零散知识点——转自我来了!
- Java中线程的相关知识点汇总
- Linux下GCC相关知识点
- [RK3288][Android6.0] 关于uboot中logo相关知识点小结【转】
- UIKeyboard键盘相关知识点
- storm-相关知识点总结