![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Forpost |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 24.9.2007 Репутация: нет Всего: нет |
Здравствуйте.
Уважаемые коллеги, подскажите, пожалуйста, решение задачи. Необходимо создать взвешенное дерево(т.е. каждая связь будет есть свой вес=числовое значение). Необходимо иметь возможность добавлять наследника, указав номер родителя. |
|||
|
||||
Forpost |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 24.9.2007 Репутация: нет Всего: нет |
Появилась следующая идея реализации:
Создаём два массива: 1. Двумерный массив, первый индекс которого отвечает за уровень вложенности; второй индекс отвечает за те элементы, которые находятся на текущем уровне. 2. Двумерный массив отношений. $relations[parent's_index][son's_index]=вес связи. Однако, как при такой структуре получить массив всех элементов, которые входят в поддерево родителя K? К может быть и корнем дерева, и листьями, и любым другим значением. |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
А чем дерево отличается от списка?
-------------------- Мир это Я. Живее всех живых. |
|||
|
||||
aleks2020 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 30.4.2012 Репутация: нет Всего: нет |
Одного массива хватит, если не ошибаюсь.
|
|||
|
||||
Forpost |
|
||||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 24.9.2007 Репутация: нет Всего: нет |
Может быть и хватит. Только я не нашел решение с одним массивом.
Тем что у одного родителя может быть несколько потомков. |
||||
|
|||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Хорошо. А чем дерево отличается от списка списков списков списков .... и т.д.? -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
MaXL |
|
|||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 24.10.2005 Где: Владивосток Репутация: нет Всего: 2 |
Forpost, вес может быть нулевым ?
что вам мешает написать Поиск в ширину или в глубину, начиная с выбранной вершины ? -------------------- MaXL |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |