Я использую два указателя в корневом каталоге и в верхней части BST. верхний указатель перемещается вдоль дерева для вставки и отображения. Теперь мой вопрос в том, что в моем коде inorder. я переместить верхний указатель вниз по дереву до времени NULL найден через рекурсию следующим образомДвоичное дерево поиска Отображение дерева порядка
void display()
{
if(top->left!=NULL)
{
top=top->left;
display();
}
cout<<"\n\nnow the address of top is "<<top;
return;
}
элементы дерева являются в настоящее время 12 11 и 10; теперь в последнем рекурсивном вызове fuction верхний указатель перемещается в 10, но как переместить верхний указатель назад после последней функции i; в каждом cout адрес вершины из 10 означает, что указатель остается на 10, даже если элемент управления возвращается к предыдущей рекурсивной функции. в этом коде есть две рекурсивные функции, отображение называется tWo раз, после второй функции отображения верхний указатель не перемещается вверх по дереву, а остается на 10, я хочу переместить верхний указатель назад после завершения каждой рекурсивной функции отображения , Помогите. НО БЕЗ ПРИВЛЕЧЕНИЯ АРГУМЕНТОВ В ФУНКЦИИ ДИСПЛЕЯ.
_ «НО БЕЗ ПРИВЛЕЧЕНИЯ АРГУМЕНТОВ В ФУНКЦИИ ДИСПЛЕЯ». _ ** ПОЧЕМУ??? ** –
Поскольку у вас нет ссылок на родительский узел, вам придется использовать «стек», чтобы нажать настоящего узла, до перехода к поддереву или узлу. –