@Kiriart

Как построить N-дерево и найти самую длинную ветвь без ветвлений?

Доброго времени суток.
По основам программирования поставили задачу, решение которой никак не могу придумать, возможно кто-то сможет подсказать как делать или хотя бы в каком направлении капать/искать документацию: нужно построить N-дерево и найти самую длинную ветвь без ветвлений.
Данную задачу нужно решить средствами c/c++.
Заранее благодарен за ответы.
  • Вопрос задан
  • 1393 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Mercury13
Программист на «си с крестами» и не только
Что-то типа

максРазмер : целое
началоМаксВетви: узел

проц максВетвь(узел : Узел, началоВетви: Узел, текРазмер: целое)
  в зависимости от степени узла «узел»
    если 0:
      если текРазмер > максРазмер
        максРазмер = текРазмер
        началоМаксВетви = началоВетви
    если 1: максВетвь(единственныйCын, началоВетви, текРазмер + 1)
    если 2+:
      для всех сыновей
        максВетвь(сын, сын, 1)

максВетвь(корень, корень, 1)


Считает макс. ветвь, кончающуюся листом; если может кончаться и развилкой — оставляю как домашнее задание.
Ответ написан
Комментировать
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Построить дерево, пройтись по всем листьям, от каждого листа идти к корню, до первого встреченного узла с несколькими детьми, запоминая самую длинную из таких найденный ветвей.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы