Мне нужно сделать функцию, где, учитывая int n и двоичное дерево поиска, мне нужно преобразовать уровень n в bst int в связанный список.например, если задано число 2 и это дерево
2
/ \
5 3
, мне нужно составить список избранного с 5 - 3
У меня проблемы с получением заданного уровня и последующим получением каждого узлана этом уровне, потому что, если я достигаю уровня, я не знаю, как добраться до следующего узла.Это значит, что я могу добраться до уровня только в одной ветке, и я не могу придумать, как сделать это рекурсивно.
так что это структура для bst и связанной цепочки:
struct nodo {
info_t dato;
nodo *anterior;
nodo *siguiente;
};
struct rep_cadena {
nodo *inicio;
nodo *final;
};
struct rep_binario {
info_t dato;
rep_binario *izq;
rep_binario *der;
};
и это функция, которую я не могу понять:
cadena_t nivel_en_binario(nat l, binario_t b)
я пробовалиспользуя другую функцию, которую я уже сделал, которая вычисляет высоту дерева, но я не могу остановиться на желаемом уровне.
nat altura_binario(binario_t b) {
if (b==NULL) return 0;
else return maximo(altura_binario(b->izq), altura_binario(b->der))+ 1;
}
, где maximo () возвращает наибольшее число между двумя заданными числами.