Я видел некоторые статьи/страницы о том, как подключить узлы двоичного дерева, которые находятся на одном уровне, но ни одна из этих статей не ясно объясняет процесс/алгоритм. Я был бы признателен, если кто-то сможет это сделать. Код не нужен, но объяснение его псевдоодно будет приятным.соединяют узлы на одном уровне двоичного дерева
Ради обсуждения, давайте рассмотрим дерево как:
0
1 2
3 4 5 6
7 9
В вышеописанном случае:
0 should point to null.
1 should point to 2.
3 should point to 4.
....
7 should point to 9.
9 should point to NULL.
Базовая структура дерева:
class Tree {
public:
int data;
Tree* left;
Tree* right;
Tree* next;
}
Вы можете перемещаться по дереву с помощью levelwise [поиск в ширину] (https://en.wikipedia.org/wiki/ Breadth-first_search) Алгоритм и на каждом уровне вы можете временно хранить предыдущий узел. Тогда 'next'' предыдущего узла' будет '' в настоящее время разобранным узлом '. – sameerkn
Да, используйте bfs или ширину первого поиска, который пересекает слои, так что в основном у вас будут узлы на одном уровне с одинаковым расстоянием от корня. –
@sameerkn, я это понимаю. Не могли бы вы написать псевдокод? –