Я работал над реализацией основного двоичного дерева поиска.Перегрузка рекурсивной функции C++
И я определил рекурсивную функцию для печати дерева в порядке
void printTree(Node *n){
if (n){
printTree (n -> left);
n -> printNode();
printTree (n -> right);
}
}
При вызове этой функции я вообще почти всегда буду называть его с начальным значением узел * п является указателем корневой узел.
это нормально, чтобы перегрузить функцию, подобную этой.
void printTree() {printTree(root);};
это принятый способ борьбы с рекурсивной функцией, в которой аргумент для первого вызова всегда будет тем же /, используя один и тот же указатель/переменным и т.д.
Есть еще один способ таких ситуаций, например, почти все рекурсивные функции, которые будут выполняться для двоичного дерева поиска, попадут в один и тот же случай. то есть аргумент для первого вызова всегда является корневым узлом.
Вы всегда будете иметь _one_ tree в вашей программе? – Petr
Для этого случая да – Koborl
@Koborl Пожалуйста, не забудьте принять ответ, который вам больше нравится –