9도 OJ 1350: 두 갈래 나무의 깊이(두 갈래 나무)
메모리 제한: 32메가바이트
특수 판제: 아니요
제출: 1044
해결
제목 설명:
이 나무의 깊이를 구하려면 두 갈래 나무를 입력하십시오.뿌리 결점에서 잎 결점까지 순서대로 지나가는 결점(뿌리, 잎 결점 포함)은 나무의 경로를 형성하고 가장 긴 경로의 길이는 나무의 깊이이다.
입력:
첫 번째 줄의 입력은 n, n으로 결점 수를 표시하고 결점 번호는 1부터 n까지입니다.루트 결점은 1입니다.n <= 10.
다음은 n줄이 있는데 줄마다 두 개의 정형 a와 b가 있는데 이것은 i번째 노드의 좌우 아이를 나타낸다.a는 왼쪽 아이, b는 오른쪽 아이입니다.a가 -1일 때 왼쪽 아이가 없다.b가 -1일 때 오른쪽 아이가 없다.
출력:
트리의 깊이를 나타내는 정형을 내보냅니다.
샘플 입력:
32 3-1 -1-1 -1
샘플 출력:
2
생각:
두 갈래 나무의 정의에 따라 업데이트를 차례로 찾습니다.
코드:
#include <stdio.h>
#define N 10
int left[N+1], right[N+1];
int func(int i)
{
if (left[i] == -1 && right[i] == -1)
return 0;
int dleft = (left[i] == -1) ? 0 : func(left[i]);
int dright = (right[i] == -1) ? 0 : func(right[i]);
return dleft > dright ? dleft+1 : dright+1;
}
int main(void)
{
int n, i;
while (scanf("%d", &n) != EOF)
{
for(i=1; i<=n; i++)
scanf("%d%d", &left[i], &right[i]);
printf("%d
", func(1)+1);
}
return 0;
}
/**************************************************************
Problem: 1350
User: liangrx06
Language: C
Result: Accepted
Time:0 ms
Memory:912 kb
****************************************************************/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
java 데이터 구조 2차원 트리의 실현 코드일.두 갈래 트리 인터페이스 2 노드 클래스 3. 두 갈래 나무 구현 이 글을 통해 여러분께 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.