2 진 트리에 대한 재귀 적 메소드를 구현해야하며, 테스트 할 수 없기 때문에 작성한 메소드가 올바르게 구현되었는지 확인하고 싶습니다. 이들은 실제 방법이 아닙니다. 알고리즘의 의사 코드를 작성하면됩니다.Java Tree 메소드 구현
a))를 트리
countNodes(TreeNode root){
if(root == null)
return 0;
else{
TreeNode left = root.getLeftChild();
TreeNode right = root.getRightChild();
return (countNodes(left)+countNodes(right)) + 1;
}
}
B에서 노드들의 수를 계산 트리의 높이
height(TreeNode root){
if(root == null)
return 0;
else{
return Math.max(height(root.getLeftChild()), height(root.getRightChild()) +1;
}
}
c) 찾기 최대 요소
maxElem(TreeNode root){
if(root == null)
return 0;
else{
int temp = 0;
temp = Math.max(maxElem(root.getLeftChild()), maxElem(root.getRightChild()));
return Math.max(root.getValue, temp);
}
}
D를 계산) 요소의 합 찾기
e) 상기 요소
average(TreeNode root){
int sum = sum(root);
int elems = countNodes(root);
return sum/elems;
}
F의 평균을 찾기) 찾기 특정 항목
search(int i, TreeNode root){
if(root == null)
return false;
else if(root.getValue == i)
return true;
else{
search(i, root.getLeftChild);
search(i, root.getRightChild);
}
}
그램) 항목이 다른
isAncestor(TreeNode p, NodeNode c){
if(p==null)
return false;
else
return (c in p.getLeftChild() || c in p.getRightChild())
}
의 상위인지 판별 h) 최대 레벨을 결정하십시오.
maxFull(TreeNode root)
if(root == null)
return 0;
else{
return(numNodes in level h == 2^h - 1)
}
}
특정 질문이 있으십니까? 그렇지 않다면, 질문은 [codereview] (http://codereview.stackexchange.com)에서 더 잘 대답 할 수 있습니다. – nickb
이 의사 코드에서 실제 코드를 작성하는 것이 너무 어렵지 않아야합니다. 이 의사 코드의 대부분은 그대로 수정되거나 거의 수정되지 않습니다. 그런 다음 단위 테스트를 사용하거나 표준 라이브러리와 비교할 수 있습니다. – wchargin