나는 이진 트리의 깊이를 찾는 방법을 알고있다. 그러나 나는 그것을 어떤 나무에서도 작동하도록 일반화 할 수 없다.트리의 최대 깊이 찾기
트리의 깊이 (반드시 이진 트리가 아님)를 찾기위한 의사 코드를 윤곽을 잡을 수 있습니까?
나는 이진 트리의 깊이를 찾는 방법을 알고있다. 그러나 나는 그것을 어떤 나무에서도 작동하도록 일반화 할 수 없다.트리의 최대 깊이 찾기
트리의 깊이 (반드시 이진 트리가 아님)를 찾기위한 의사 코드를 윤곽을 잡을 수 있습니까?
int findDepthOfTree(tree):
int deepest = 0;
for (child of root node)
deepest = max(deepest, findDepthOfTree(child))
return deepest + 1
자바 구현은 K 진 트리의 깊이를 확인하는 방법은 다음과 같습니다
static int findDepth(Node root) {
int deepest = 0;
if (root.children != null) {
for (Node child : root.children) {
deepest = Math.max(deepest, findDepth(child));
}
}
return deepest+1;
}
이 나타내는 노드의 목록에 대한 참조뿐만 아니라 데이터 요소를 HAVA하기 위해 구현 된 다음 노드 클래스를 가정 그것의 아이들. 다음과 같이 될 수 있습니다.
class Node {
int data;
List<Node> children;
public Node (int data, List<Node> children) {
this.data = data;
this.children = children;
}
public Node (int data) {
this.data = data;
this.children = null;
}
}
실제로 할 수 있습니다. 하지만 전에 최소한으로 해봐야한다고 생각하지 않아? – Maroun