Как использовать IPriorityQueue в библиотеке C5
Я использую популярную библиотеку C5 для C# ( C5) и пытаюсь выяснить, как реализовать IPriorityQueue
должным образом. Допустим, у меня есть набор A={5,4,1,2,3}
, Я хочу, чтобы приоритет был самым высоким целочисленным значением. Как мне это реализовать?
Может кто-нибудь привести пример, где я добавляю элементы в набор A
один за другим в очередь? Где можно указать приоритетное свойство? Вроде проиграл на реализации.
Кстати, конечная цель - использовать это для создания двоичной кучи.
1 ответ
Я не знаком с этой библиотекой C5, но здесь есть простая в использовании, высокопроизводительная реализация очереди с приоритетами:
Источник ConcurrentPriorityQueue (если вам нужна безопасность потоков)
Используя один из них, вы бы построили его так:
IPriorityQueue<object> queue = new PriorityQueue<object>(5, true);
где 5 - это количество приоритетов, которыми вы хотите управлять, true / false указывает, хотите ли вы, чтобы приоритеты рассматривались как убывающие или возрастающие по приоритету, а