Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 "Упорядоченное" дерево   Andrei Protasovitski   06 Dec 2002 00:30:45 
Архивное /ru.perl/648830cdb1cc.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional