Распечатать путь от корня ко всем узлам в полном двоичном дереве

Опубликовано: 2 Декабря, 2021

Дано число N, которое представляет собой общее количество узлов в полном двоичном дереве, где число узлов от 1 до N последовательно по уровням. Задача состоит в том, чтобы написать программу для вывода путей от корня ко всем узлам полного двоичного дерева.
Для N = 3 дерево будет:

 1
  / 
2 3

Для N = 7 дерево будет:

 1
    / 
   2 3 
 /  /  
4 5 6 7

Примеры:

 Ввод: 7 
Выход :
1 
1 2 
1 2 4 
1 2 5 
1 3 
1 3 6 
1 3 7 

Ввод: 4
Выход :
1 
1 2 
1 2 4 
1 3

Рекомендуется: сначала попробуйте свой подход в {IDE}, прежде чем переходить к решению.

Пояснение : - Поскольку данное дерево является полным двоичным деревом. Для каждого узла мы можем вычислить его левый дочерний элемент как 2 * i, а правый дочерний элемент как 2 * i + 1 .
Идея состоит в том, чтобы использовать подход с возвратом для печати всех путей. Сохраните вектор для хранения путей, сначала подтолкните к нему корневой узел 1 и, прежде чем нажимать левый и правый дочерние элементы, распечатайте текущий путь, хранящийся в нем, а затем вызовите функцию для левого и правого дочерних элементов.
Ниже представлена полная реализация описанного выше подхода:

Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .

Если вы хотите посещать живые занятия с отраслевыми экспертами, пожалуйста, обращайтесь к Geeks Classes Live и Geeks Classes Live USA.