虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > C/C++编程 > 无向图 深度优先遍历 c语言实现

无向图 深度优先遍历 c语言实现
类别:C/C++编程   作者:码皇   来源:x_i_y_u_e的专栏     点击:

无向图的深度优先遍历的实现,无向图用邻接表表示无向图的表示:邻接矩阵和邻接表。程序使用的示例图为: 实现要点: 每个节点有三种状态-1,0,1,分别表示未发现,已经发现,已经处理。代码如下:

无向图的深度优先遍历的实现,无向图用邻接表表示无向图的表示:邻接矩阵和邻接表。

程序使用的示例图为:
这里写图片描述

实现要点:
每个节点有三种状态-1,0,1,分别表示未发现,已经发现,已经处理。

代码如下:<喎"http://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

这里从2开始深度遍历,结果为:2 0 1 3 5 4 6

相关热词搜索: 无向 深度 语言