习题-35.c

来自「数据结构经典算法」· C语言 代码 · 共 36 行

C
36
字号
//本程序只给出了算法思想
//读者可以自己完善本程序
void STraverse_Nonrecursive(Graph G)//非递归遍历强连通图G
{
	int visited[MAXSIZE];
	InitStack(S);
	Push(S,GetVex(S,1)); //将第一个顶点入栈
	visit(1);
	visited =1;
	while(!StackEmpty(S))
	{
		while(Gettop(S,i)&&i)
		{
			j=FirstAdjVex(G,i);
			if(j&&!visited[j])
			{
				visit(j);
				visited[j]=1;
				Push(S,j); //向左走到尽头
			}
		}//while
		if(!StackEmpty(S))
		{
			Pop(S,j);
			Gettop(S,i);
			k=NextAdjVex(G,i,j); //向右走一步
			if(k&&!visited[k])
			{
				visit(k);
				visited[k]=1;
				Push(S,k);
			}
		}//if
	}//while
}//Straverse_Nonrecursive

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?