Как использовать IPriorityQueue в библиотеке C5

Я использую популярную библиотеку C5 для C# ( C5) и пытаюсь выяснить, как реализовать IPriorityQueue должным образом. Допустим, у меня есть набор A={5,4,1,2,3}, Я хочу, чтобы приоритет был самым высоким целочисленным значением. Как мне это реализовать?

Может кто-нибудь привести пример, где я добавляю элементы в набор A один за другим в очередь? Где можно указать приоритетное свойство? Вроде проиграл на реализации.

Кстати, конечная цель - использовать это для создания двоичной кучи.

1 ответ

Я не знаком с этой библиотекой C5, но здесь есть простая в использовании, высокопроизводительная реализация очереди с приоритетами:

Источник PriorityQueue

Источник ConcurrentPriorityQueue (если вам нужна безопасность потоков)

Используя один из них, вы бы построили его так:

IPriorityQueue<object> queue = new PriorityQueue<object>(5, true);

где 5 - это количество приоритетов, которыми вы хотите управлять, true / false указывает, хотите ли вы, чтобы приоритеты рассматривались как убывающие или возрастающие по приоритету, а будет вашим общим типом. Оба из них также поддерживают полные операции со списком. Также есть сайт проекта.

Другие вопросы по тегам