数据结构之图论算法

无人久伴 提交于 2019-11-30 00:53:31

一、图的基本概念和定义

图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为G =(V,E)

图的顶点个数不能为0,但边数可以为0,一般没有空图的说法,图论里的零图是表示只由孤立节点组成的图。

数据结构中讨论的图都是简单图,即没有环也没有重边的图。

一条边依附于两个点,两点的邻接意味着两点由一条边相连。

含有n个顶点的无向完全图有n*(n-1)/2条边,有向完全图有n*(n-1)条边。

边数少的图就是稀疏图,边数多的图就是稠密图。

顶点的度是依附于该顶点的边数

简单通路就是顶点没有重复的路径。

简单回路:除了第一个点和最后一个点外,没有重复访问的点。

入度等于出度等于边数,图的度之和等于边数的二倍。

权:边有值。网:边上带权的图。

无权图的路径长度为路径边的条数。

连通图:图中任意两个顶点都是连通的

连通分量:非联通图的极大连通子图称为连通分量,(连同依附于所有点的边)

生成树:n个节点的连通图G的生成树是包含G中全部顶点的一个极小连通子图。含有n-1条边,多一条边构成回路,少一条边不连通。生成森林就是分别得到一棵生成树。

二、图的遍历

1、每次找邻接点,有多个就优先选择序号小的,并且标记表示已经访问过,深度优先遍历可以,数据结构是栈

2、BFS广度优先搜索,有就放入队列,取出队头,访问队头邻接点,入队

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!