《 대화 데이터 구 조 》 의 넓이 를 우선적으로 편력 하 다.

범위 우선 옮 겨 다 니 기: 점 으로 시작 하여 한 층 씩 옮 겨 다 니 며 이 진 트 리 와 같은 층 차 를 옮 겨 다 닙 니 다.대열 의 도움 을 빌려 실현 하 다.
관련 변수 와 데이터 구조 정의:
/*
        
*/
typedef char VertexType;
typedef int EdgeType;
#define MAXVEX 100
#define INFINITY 65535

typedef struct 
{
	VertexType vexs[MAXVEX];
	EdgeType arc[MAXVEX][MAXVEX];
	int numVertexes,numEdges;
}MGraph;

우선 스 트 리밍 코드:
/*
          
*/
void BFSTraverse(MGraph G)
{
	int i,j;
	Queue Q;
	for(i=0;i<G.numVertexes;i++)
	{
		visited[i] = FALSE;
	}
	InitQueue(&Q);
	for(i=0;i<G.numVertexes;i++)
	{
		if(!visited[i])
		{
			visited[i] = TRUE;
			printf("%c",G.vexs[i]);
			//      
			EnQueue(&Q,i);
			while(!QueueEmpty(Q))
			{
				//         ,    i
				DeQueue(&Q,&i);
				for(j=0;j<G.numVertexes;j++)
				{
					if(G.arc[i][j] == 1 && !visited[j])
					{
						visited[j]=TRUE;
						printf("%c",G.vexs[j]);
						EnQueue(&Q,j);
					}
				}
			}
		}
	}
}

좋은 웹페이지 즐겨찾기