9도 OJ - 1350 - 두 갈래 나무의 깊이
제목 설명
이 나무의 깊이를 구하려면 두 갈래 나무를 입력하십시오.뿌리 결점에서 잎 결점까지 순서대로 지나가는 결점(뿌리, 잎 결점 포함)은 나무의 경로를 형성하고 가장 긴 경로의 길이는 나무의 깊이이다.
입력
첫 번째 줄의 입력은 n, n으로 결점 수를 표시하고 결점 번호는 1부터 n까지입니다.루트 결점은 1입니다.n <= 10. 다음은 n줄이 있는데 줄마다 두 개의 정형 a와 b가 있는데 이것은 i번째 노드의 좌우 아이를 나타낸다.a는 왼쪽 아이, b는 오른쪽 아이입니다.a가 -1일 때 왼쪽 아이가 없다.b가 -1일 때 오른쪽 아이가 없다.
출력
트리의 깊이를 나타내는 정형을 내보냅니다.
샘플 입력
3 2 3 -1 -1 -1 -1
샘플 출력
이
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
struct TreeNode{
int lchild;
int rchild;
};
TreeNode Tree[20];
int depthTree(int x, int n){
if(x < 1 || x > n)
return 0;
if(Tree[x].lchild==-1 && Tree[x].rchild==-1){
return 1;
}
int leftdepth = depthTree(Tree[x].lchild, n);
int rightdepth = depthTree(Tree[x].rchild, n);
return leftdepth >= rightdepth ? leftdepth+1 : rightdepth+1;
}
int main()
{
int n, left, right, depth;
while(scanf("%d", &n)!=EOF){
for(int i = 1; i <= n; i++){
cin >> left >> right;
Tree[i].lchild = left;
Tree[i].rchild = right;
}
int depth = depthTree(1, n);
cout << depth << endl;
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
java 데이터 구조 2차원 트리의 실현 코드일.두 갈래 트리 인터페이스 2 노드 클래스 3. 두 갈래 나무 구현 이 글을 통해 여러분께 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.