Распечатать путь от корня ко всем узлам в полном двоичном дереве
Дано число 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
Пояснение : - Поскольку данное дерево является полным двоичным деревом. Для каждого узла мы можем вычислить его левый дочерний элемент как 2 * i, а правый дочерний элемент как 2 * i + 1 .
Идея состоит в том, чтобы использовать подход с возвратом для печати всех путей. Сохраните вектор для хранения путей, сначала подтолкните к нему корневой узел 1 и, прежде чем нажимать левый и правый дочерние элементы, распечатайте текущий путь, хранящийся в нем, а затем вызовите функцию для левого и правого дочерних элементов.
Ниже представлена полная реализация описанного выше подхода:
Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
Если вы хотите посещать живые занятия с отраслевыми экспертами, пожалуйста, обращайтесь к Geeks Classes Live и Geeks Classes Live USA.