2010-04-13 2 views
2

Я написал алгоритм Дейкстры много раз в C++ - мне нужно установить set или priotity_queue, и дать мне возможность добавить элемент и найти хотя бы один (используя указанный компаратор). Теперь у меня проблема при попытке написать Dijkstra в C# - есть ли какая-то структура, которая может быть полезной для меня? Мне нужно добавить и найти или стереть наименьший элемент.Коллекция C#, которая ведет себя как набор C++ или priority_queue?

с помощью Visual Studio '08

ответ

1

Вы можете использовать мою. Это очень просто; Здесь нет ничего необычного.

http://blogs.msdn.com/ericlippert/archive/2007/10/08/path-finding-using-a-in-c-3-0-part-three.aspx

Я написал это для простой реализации алгоритма A *, которая является более эффективной формой алгоритма Дейкстры.

+0

Спасибо, я сделаю Dijkstra, используя ваш PQ. Это не какая-то коммерческая программа, просто необычная домашняя работа в старшей школе, симулятор GPS и т. Д. Большое спасибо! – Wojciech

+0

Вам нужна операция DecreaseKey для Dijkstra, и вам нужна очередь приоритетов, которая поддерживает это. – Rubys

2

Вы можете использовать SortedSet, если используете более новую версию .NET Framework.

 Смежные вопросы

  • Нет связанных вопросов^_^