Я должен реализовать рекурсивные методы для двоичного дерева и хотел бы проверить, правильно ли реализованы методы, которые я написал, поскольку я не могу их протестировать. Это не фактические методы. Мне просто нужно написать псевдокод алгоритма.Реализация методов дерева дерева
а) граф числа узлов в дереве
countNodes(TreeNode root){
if(root == null)
return 0;
else{
TreeNode left = root.getLeftChild();
TreeNode right = root.getRightChild();
return (countNodes(left)+countNodes(right)) + 1;
}
}
б) Вычислить высоту дерева
height(TreeNode root){
if(root == null)
return 0;
else{
return Math.max(height(root.getLeftChild()), height(root.getRightChild()) +1;
}
}
с) Найти максимальный элемент
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) Найти сумму элементов
sum(TreeNode root){
if(root == null)
return 0;
else{
return (sum(root.getLeftChild()) + sum(root.getRightChild())) + root.getValue();
}
}
е) Найти среднее значение элементов
average(TreeNode root){
int sum = sum(root);
int elems = countNodes(root);
return sum/elems;
}
е) Найти конкретный пункт
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