图(一)
来源:互联网 发布:迪丽热巴 陈伟霆 知乎 编辑:程序博客网 时间:2024/06/07 13:32
图:
基本概念:
一个图是由两个集合:V和E所组成的,V是有限的非定顶点集合,E是用顶点对表示的边(edge)集合,
图G的顶点集和边集分别记为V(G)和E(G),而将图G表示为G=(V,E),也就是说,决定一个图需要知道它的顶点集合和边的集合。
无向图:边不带方向,表示为<B,C> (注意是方括号)
有向图:边带方向,表示为(B,C)(注意是圆括号)
度:一个顶点关联的边的数量
入度:进到顶点的边的数量
出度:从顶点发出的边的数量
子图:设G ‘ 和G是两个图,若有V(G ’ ) 包含于 V(G),E(G ‘ )包含于E(G),则称G ’ 是G的子图。
完全图:无向图中,每对顶点之间都有一条边相连,则称这个无向图为完全图;有向图中,每对顶点之间都有二条有向边相连,则称这个有向图为完全图。
路径:从一个顶点到另一个顶点的边组成的序列。边的数目就是路径的长度。
回路:从一个顶点出发又回到这个顶点的路径称为回路。
简单回路:除了起点和终点相同,路径的序列没有其他元素相同,即在路径上不走重复顶点。
复杂回路:路径的序列除首尾外还有元素相同,即在路径上有重复顶点。
连通图:图中任何两个顶点之间都有路径可以到达的图。
有向图的强连通:每两点之间都可以互相到达,双向连通。
有向图的弱连通:两点之间有单向连通。
连通分量:一个图被割离成几部分,每个相连的部分称为连通分量。
网络:加上权值的图。
图的存储:
邻接矩阵:假设一个图有n个顶点,编号为1,2,...,n,用一个n阶方阵R来存放图中各结点的关联信息,其矩阵元素Rij定义为:
若顶点i到顶点j有边,Rij = 1;若顶点i到顶点j无边,Rij = 0
邻接表:首先把每个顶点的邻接点用链表示出来,该表的结点结构可以设计为vertex link(顶点的链?我也不懂),这样n个顶点就有n个链表。
然后用一个一维数组来顺序存储上面每个链表的头指针。一维数组的元素也可以设计成为vertex link,
这样只要知道数组的元素就可以确定该顶点与之相关联的顶点信息。
图的遍历:
图的遍历分为深度优先和广度优先。深度优先的遍历方法:
1、首先访问出发的顶点V
2、依次从V出发搜索V的每个邻接点W
3、若W未访问过,则从该点出发继续深度优先遍历类似于树的前序遍历
(意思就是类似前序遍历从根开始再左最后右访问)
广度优先的遍历方法:
1、首先访问出发的顶点V
2、然后访问与顶点V邻接的全部未访问顶点W、X、Y。。。
3、然后再依次访问W、X、Y。。。邻接的未访问的顶点
(意思就是按层级一层层访问)
阅读全文
0 0
- UML图(一)
- 星号图(一)
- 星号图(一)
- 二分图(一)
- [数据结构]图(一)
- 图算法(一)
- 图(一)
- 弹出图效果(一)
- 图模型简介(一)
- UML图(一) 用例图
- 时序图学习(一)
- IOS框架图(一)
- 图论总结(一)
- (一)java数据类型图
- 图的基本概念(一)
- Spark图计算(一)
- 数据结构–图(一)
- (一)
- docker compose php+mysql+nginx
- unity菜单翻译
- 【NOIP模板】 树链剖分 (求lca)
- Python简单多线程实例
- SPI协议及其工作原理浅析
- 图(一)
- 数据库索引为什么要用 B+ 树而不用红黑树呢?
- 二进制转换
- 模板的分离编译
- servlet通讯录系统
- 2.1神经网络基础-二分分类
- SPOJ
- flask email service学习笔记-html+图片(补充)
- python_lintcode_433岛屿的个数_415有效回文串