无向图的深度优先遍历的实现,无向图用邻接表表示无向图的表示:邻接矩阵和邻接表。
程序使用的示例图为:
实现要点:
每个节点有三种状态-1,0,1,分别表示未发现,已经发现,已经处理。
代码如下:v...
无向图的深度优先遍历的实现,无向图用邻接表表示无向图的表示:邻接矩阵和邻接表。
程序使用的示例图为:
实现要点:
每个节点有三种状态-1,0,1,分别表示未发现,已经发现,已经处理。
代码如下:喎?https: www.2cto.com/kf/ware/vc/"="" target="_blank" class="keylink">vcd4ncjxwcmugy2xhc3m9"brush:java;">
#include
#include
#include "graph_represent.h"
//后序遍历图
void dfs(struct vnode** adj,int v,int* color){
struct vnode* w;
color[v] = 0;
printf("%d ",v);/**在这里前序处理节点**/
w = adj[v];
while(w != null){
if(color[w->value]==-1){
dfs(adj,w->value,color);
}
w = w->next;
}
/**这里后序处理节点**/
color[v] = 1;
}
//参数:邻接表,节点个数,开始节点,
void dfs_wraper(struct vnode** adj,int n,int s){
int* color = (int*)malloc(sizeof(int)*n);
int i;
for(i=0;i;i++){>
这里从2开始深度遍历,结果为:2 0 1 3 5 4 6
喎?https:>