Вопрос

У меня возникло небольшое затруднение, когда я пытался придумать хороший алгоритм для навигации по следующему графику.

альтернативный текст http://www.archimedesinc.biz/images/StackOverflow/Tree .jpg

Если пользователь выбирает «Таблица 21» в качестве отправной точки мне нужно иметь возможность получить путь к любой другой таблице из этой стартовой таблицы.

EX: если пользователь выбирает «Таблицу 21» Для начала, а затем добавьте значение из «Таблицы 8», мне нужно создать следующий путь » Таблица 21 - > Таблица 12 - > Таблица 9 - > Таблица 6 - > Таблица 8 , все веса между таблицами одинаковы.

Кажется, я забыл свои навыки работы с ориентированными графами и не могу придумать хороший алгоритм. Я не прошу решения, а просто подталкиваю в правильном направлении.

Спасибо!

Это было полезно?

Решение

При поиске в ширину будет найден кратчайший путь: http://en.wikipedia.org / вики / Ширина-first_search

Другие советы

Поскольку вы сказали, что все ребра имеют одинаковый вес, алгоритм Дейкстры ( мой обычный первый выбор для такого рода вещей) просто снизится до поиска в ширину , поэтому Я предлагаю использовать это для простоты.

Вы можете выбрать один из нескольких алгоритмов определения кратчайшего пути. QuickGraph хорош в этом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top