это учебный материал, а не домашнее задание:рекурсивного дерева, печать предок узлы
Я следующее дерево, мне нужно написать алгоритм, который находит заданное число и возвращает целое число, указывающее, сколько узлов он посетил, прежде чем найти Это. Он также должен вывести значения все «предок» узлы по отношению к узлу, в котором было найдено значение (в произвольном порядке, и предполагается, что данное значение всегда присутствует)
10
/\
20 60
/\
50 30
\
40
Если данные значение равно 40, оно должно возвращаться 4 и печатать 30, 20, 10 (в любом порядке)
Я написал следующее решение, и я думаю, что это работает, но я обеспокоен печатью.
void foobar (ty_tree *tree, int value, int & count){
if (tree !=null) {
if (tree->value != value) {
count++;
foobar (tree->left, value, count);
foobar (tree->right, value, count);
cout << tree->value;
}
}
}
Поскольку вы делаете это рекурсивно, вы хотите распечатать только значение узла, когда вы опускаетесь от поиска цели. – e0k