【考研】图深度优先搜索算法

  • 图的深度优先搜索算法的基本思想
    找图中任意一个结点,将其标记成为已访问。然后任意访问它的一个未被访问的邻接结点,如果新的被访问的临接结点全部被访问,就退回上一个最近被访问的结点。
int visit[maxSize];			//定义全局数组,
					//用来存放已经访问过的结点
void DFS(AGraph *G,int v) 		//v用来记录访问数组的下标
{
	ArcNode *p;
	visit[v] = 1;			//v被访问记录为1
	Visit(v);			//访问顶点v,不需要纠结如何实现
	p=G->adjlist[v].firstarc;	//p指向邻接表v位置的结点
	while(p!=NULL)			//循环访问未被访问的结点
	{
		if(visit[p->nextarc]==0)
			{
				DFS(G,p->adjvex	//递归判断下一个结点
			}
	p->nextarc;
	}
}

你可能感兴趣的:(考研学习)