알고리즘 7 - 4: 그림 의 옮 겨 다 니 기 - 깊이 우선 검색
깊이 우선 검색 트 리 와 유사 한 뿌리 를 옮 겨 다 니 는 것 은 트 리 의 먼저 뿌리 를 옮 겨 다 니 는 홍보 입 니 다.그 과정 은 초기 상태 가 그림 의 모든 정점 이 방문 되 지 않 았 다 고 가정 하면 깊이 우선 검색 은 그림 의 특정한 정점 v 에서 출발 하여 이 정점 을 방문 한 다음 에 v 의 방문 되 지 않 은 인접 점 에서 깊이 우선 그림 을 옮 겨 다 닐 수 있 습 니 다. 그림 에서 v 와 경로 가 통 하 는 모든 정점 이 방문 할 때 까지.만약 에 그림 에 정점 이 방문 되 지 않 았 다 면 그림 에 방문 되 지 않 은 정점 을 시작 점 으로 선택 하고 상기 과정 을 반복 하 며 그림 의 모든 정점 이 방문 되 었 을 때 까지 반복 합 니 다.
이 문제 에서 그림 이 없 는 인접 행렬 (즉 배열 표시) 을 읽 고 방향 이 없 는 그림 을 만 들 고 상기 설명 에서 의 알고리즘 에 따라 모든 정점 을 옮 겨 다 니 며 출력 이 정점 을 옮 겨 다 니 는 순서 입 니 다.
입력
입력 한 첫 줄 은 정수 n 을 포함 하고 그림 에 n 개의 정점 이 있 음 을 나타 낸다.그 중 n 은 50 을 넘 지 않 는 다.
이후 n 줄 마다 n 개의 빈 칸 으로 구 분 된 정수 0 또는 1 이 있 고 i 줄 의 j 번 째 0 또는 1 에 대해 1 은 i 번 째 정점 과 j 번 째 정점 이 직접 연결 되 어 있 음 을 나타 내 며 0 은 직접 연결 되 지 않 았 음 을 나타 낸다.i 와 j 가 같 을 때 대응 하 는 정 수 는 0 이다.
입력 은 인접 행렬 이 대칭 행렬 임 을 보증 합 니 다. 즉, 입력 한 그림 은 반드시 방향 이 없 는 그림 입 니 다.
출력
한 줄 만 있 고 n 개의 정 수 를 포함 하 며 제목 설명 에 있 는 깊이 에 따라 전체 그림 의 방문 정점 순 서 를 우선 시 합 니 다.정수 마다 빈 칸 을 출력 하고 줄 끝 출력 줄 바 꾸 기 에 주의 하 십시오.
샘플 입력
4
0 1 0 1
1 0 0 0
0 0 0 1
1 0 1 0
샘플 출력
0 1 3 2
AC 코드
#include #define N -99999 int a[55][55]; void str(int n,int i) { int j; for(j=0;j { if(a[i][j]==1) { printf("%d ",j); a[i][j]=N; a[j][i]=N; str(n,j); } } } int main() { int n,i,j; scanf("%d",&n); for(i=0;i { for(j=0;j scanf("%d",&a[i][j]); } printf("0 "); str(n,0); printf(""); return 0; }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.