深度优先.cpp
来自「数据结构中关于图的操作,含多种操作方法例子」· C++ 代码 · 共 46 行
CPP
46 行
int visited[MAXVEX],
void dfs(adjlist adj,int v)
{
int i;
struct edgenode *p;
for(i=0;i<n;i++)
visited[i]=0;
visited[v]=1;
printf("%d",v); //取v的边的表头指针
p=adj[v].link;
while(p!=NULL)
{
if(viited[p->adjvex==0) //从v的未访问过的邻接点出发进行深度遍历
dfs(adj,p->adjvex);
p=p->next; //找v的下一个邻接点
}
}
/*方法2
void traver(TD g[],int n)
{ int i;
static int visited[M];
for(i=1;i<=n;i++)
visited[i]=0;
for(i=1;i<=n;i++)
if(visited[i]==0)
dfs(g,i,visited);
}
void dfs(TD g[],int v,int visited[])
{ JD *w;
int i;
printf("%d ",v);
visited[v]=1;
w=g[v].firstarc;
while(w!=NULL)
{ i=w->adjvex;
if(visited[i]==0)
dfs(g,i,visited);
w=w->next;
}
}
*/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?