Помощь - Поиск - Пользователи - Календарь
Полная версия: Генеалогическое дерево
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
m'alinka
Народ, подскажите, пожалуйста, как решить задачку! :molitva:
Дан файл: Отец->Сын, например,
Миша - сын Паши
Саша - сын Ильи
Илья - сын Гриши
Паша - сын Гриши и т. д. по мужской линии.
Совпадение имен возможно. Нужно составить дерево и выяснить, кто самый плодовитый. Вот так вот :low:
Буду очень благодарна, если подскажите что-нибудь! Мне главное создать, плодовитого я и сама найду!)))
Altair
Цитата
Совпадение имен возможно.

А как тогда дерево строить?
Ну вот например
Вова сын Алекса
Алекс сын Вовы
Вова сын Михаила.

Для такого случая нарисуй дерево...
m'alinka
"Вова сын Алекса
Алекс сын Вовы"
Нет, такого не бывает, имена уникальные. Я, наверное, про совпадение непонятно написала. rolleyes.gif
Altair
Раз совпадений не бывает, используя для построения бинарное дерево.
FAQ: бинарные деревья.
m'alinka
Это то понятно! Но как из таких пар в файле составить дерево? До меня что-то не доходит.... huh.gif
Altair
Ну сначала, получив строку стоит ееразобрать (на первоеимяивторое)
думаю с этим проблемм нет.
Теперль проверяеместь лиунас родитель уже вдереве, если нет,создаемего там, ик нему вподдереве пишем потомка.
Аесли есть родитель ужевдереве, то просто кнемуприписываем вподдерево потомка.Вроде так.
m'alinka
Да, я совсем забыла, сыновей-то не обязательно двое, может и 10!
volvo
А вот это уже хуже.... sad.gif Но все равно решаемо... Только таком случае твою задачу я бы решал не с помощью дерева, а с помощью списка (каждый элемент которого в свою очередь тоже может быть списком) wacko.gif Выглядеть будет примерно так:

Цитата
{2}
|
{3}- 1 2 3
{2}- {3|2}
          | |
          1 1
          2 2
          3

в фигурных скобках - отцы (которые в свою очередь могут быть и сыновьями)... Только не пугайся, это выглядит сложнее, чем реализуется smile.gif
Altair
это ты намекаешь на то, что дерево не подойдет?
используй список списков...там можешь что угодно сделатьsmile.gif

p.s. пока яписал,он уже ответил smile.gif
m'alinka
Да в том-то и дело, что решать надо через дерево!!! Обязательно!!
Altair
А чем список списков не дерево?
Протсо не двоичное... а как его назвать не важно...
m'alinka
Ну хорошо, как решать через список??
viagra frequently asked question
Priligy Niederlande
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.