데이터 구조 실험의 도 론 2: 그림 의 깊이 옮 겨 다 니 기

Problem Description
0 부터 n - 1 까지 무 방향 그림 을 정 하고 깊이 우선 검색 (DFS) 으로 옮 겨 다 니 며 출력 하 십시오.시간 이 지나 면 먼저 노드 번호 가 작은 것 을 옮 겨 다 닌 다.
Input
첫 번 째 행위 정수 n (0 < n < 100) 을 입력 하여 데이터 의 그룹 수 를 표시 합 니 다.각 조 의 데이터 에 대해 첫 번 째 줄 은 두 개의 정수 k, m (0 < k < 100, 0 < m < k * k) 로 m 개의 변, k 개의 정점 이 있 음 을 나타 낸다.아래 m 줄 은 각 줄 이 빈 칸 으로 구 분 된 두 개의 정수 u, v 로 연결 u, v 정점 의 무 방향 변 을 나타 낸다.
Output
출력 은 n 줄 이 있 고 n 조 출력 에 대응 하 며 모든 행 위 는 빈 칸 으로 구 분 된 k 개의 정수 로 한 그룹의 데이터 에 대응 하여 DFS 의 옮 겨 다 니 는 결 과 를 표시 합 니 다.
Example Input
1
4 4
0 1
0 2
0 3
2 3

Example Output
0 1 2 3
#include
#include
#include

int a[110][110], vis[110];
int k, m;
void Dfs(int t);
int main()
{
    int T;
    scanf("%d", &T);
    while(T--)
    {
        memset(a, 0, sizeof(a));
        memset(vis, 0, sizeof(vis));
        scanf("%d %d", &k, &m);
        while(m--)
        {
            int i, j;
            scanf("%d %d", &i, &j);
            a[i][j] = a[j][i] = 1;
        }
        printf("0");
        Dfs(0);
        printf("
"); } } void Dfs(int t) { int i; vis[t] = 1; for(i = 0; i < k; i++) { if(!vis[i] && a[t][i]) { printf(" %d", i); Dfs(i); } } }

좋은 웹페이지 즐겨찾기