连通图中节点的遍历
来源:互联网 发布:网络名词梗是什么意思 编辑:程序博客网 时间:2024/05/21 15:42
首先复习一些基本概念:
连通:如果从v到w存在一条(无向)路径,则称v和w是连通的。
路径:v到w的路径是一系列顶点{v,v1,…,vn,w}的集合,其中任一对相邻的顶点间都有图中的边。
路径的长度:路径中的边数(如果带权,则是所有边的权重和)。如果v到w之间的所有顶点都不同,则称简单路径。
回路:起点等于终点的路径。
连通图:图中任意两顶点均连通。
连通分量:无向图的极大连通子图。极大定点数:再加1个顶点就不连通了。极大边数:包含子图中所有顶点相连的所有边。
强连通:有向图中顶点V和W之间存在双向路径,则称V和W是强连通的。
强连通图:有向图中任意两顶点均强连通。
强连通分量:有向图的极大强连通子图
连通图中节点的遍历有两种方法:深度优先搜索(Depth First Search)和广度优先搜索(Breadth First Search)。
深度优先搜索算法:
void DFS ( Vertex V ){ visited[ V ] = true;for ( V 的每个邻接点W )if ( !visited[ W ] )DFS( W );}广度优先搜索算法:
void BFS ( Vertex V ){ visited[V] = true;Enqueue(V, Q);while(!IsEmpty(Q)){V = Dequeue(Q);for ( V 的每个邻接点W )if ( !visited[W] ) {visited[W] = true;Enqueue(W, Q);}}}深度优先搜索类似于树的前序搜索,从起点往远离该点的方向一直遍历直到尽头,返回上一步遍历其他岔路;广度优先搜索类似于树的层次遍历,利用了队列不断将该节点的下一层的所有元素加入队列中,不断弹出遍历从而实现。那么对于非连通的图呢?
void ListComponents ( Graph G ){ for ( each V in G )if ( !visited[V] ) {DFS( V ); /*or BFS( V )*/}}
0 0
- 连通图中节点的遍历
- 搜索连通的节点
- 数据结构—非连通图的遍历
- MFC中遍历TreeControl的节点或者查找某个节点
- 二叉排序树,完成创建节点,插入节点,删除节点,查找节点,中序遍历的功能
- BCB中TListView的节点遍历方法小节BCB中TListView的节点遍历方法小节
- 图 dfs遍历连通块
- 图的遍历- 图内多环 多连通图问题
- 图的遍历和图不连通怎么办
- 无向连通图的广度优先遍历算法
- 连通图里的深度优先和广度优先遍历
- 数据结构例程——非连通图的遍历
- 第十二周-非连通图的深度优先遍历
- 第十二周--数据结构--非连通图的遍历之一
- 第十二周--数据结构--非连通图的遍历之二
- 第十二周--数据结构--非连通图的遍历之三
- 数据结构—连通图的遍历—DFS和BFS
- C语言非连通图的深度优先遍历
- Android广告平台
- 【刷题之路】零钱凑整问题
- 程序员常用软件清单曝光
- 考研经验总结
- iOS添加测试设备与调试
- 连通图中节点的遍历
- HTTP 错误 500.21 - Internal Server Error PageHandlerFactory-Integrated
- iOS添加测试设备与调试
- C++之仿函数
- Laravel——路由(路由与控制器)
- Tower Defence ToolKit (TDTK)
- 36. Valid Sudoku [easy] (Python)
- 应用于负载均衡的一致性哈希及java实现
- 微微威武