|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrei Protasovitski 2:5020/400 06 Dec 2002 00:30:45 To : All Subject : "Упорядоченное" дерево -------------------------------------------------------------------------------- Доброго всем здоровья! Hеобходимо создать "упорядоченное" дерево, т.е. дерево, ветви которого, исходящие из одного источника, имеют строгий порядок. Пример (семья, отсортированная по возрасту): Дед 69 | +-Старший сын 48 | | | +-Старшая дочь старшего сына 26 | | | | | +-Сын дочери старшего сына 3 | | | +-Младший сын старшего сына 20 | +-Средний сын 45 | | | +-Старший сын среднего сына 25 | | | | | +-Старшая дочь старшего сына среднего сына 4 | | | | | +-Средний сын старшего сына среднего сына 2 | | | | | +-Младшая дочь старшего сына среднего сына 0,5 | | | +-Младшая дочь среднего сына 22 | +-Младшая дочь 40 | +-Сын младшей дочери 16 Вся информация о дереве хранится в файле следующим образом (Для краткости оставляю только возрасты и убираю деда): 48 48/26 48/26/3 48/20 45 45/25 45/25/4 45/25/2 45/25/0,5 45/22 40 40/16 ВАЖHО! Возраст приведен в качестве простейшего примера сортировки. Порядок сортировки ДОЛЖЕH совпадать с порядком следования члена семьи в файле данных. Если же необходимо будет отсотртировать членов семьи по количеству рыболовных крючков, завещанных дедом, то файл может выглядеть примерно так: 45 48 40 48/20 48/26 48/26/3 45/25 45/22 45/25/4 45/25/0,5 45/25/2 40/16 Я придумал такую структуру данных: @tree = [{name => '48', children => [{name => '26', children => [{name => '3'}] }, {name => '20'} ] }, {...}, ... ] Что-то не могу никак сообразить, как в эту структуру запихнуть данные из файла. Может есть болле изящное решение? -- Andrei. Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5 * Origin: Talk.Mail.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/648830cdb1cc.html, оценка из 5, голосов 10
|