Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
538 of 1492 menu
◀ ▶

Класс PriorityQueue

Класс PriorityQueue<TElement, TPriority> из пространства имён System.Collections.Generic связывает каждый элемент с приоритетом. По умолчанию раньше выходит элемент с меньшим приоритетом; порядок задаёт Comparer. Добавление - через Enqueue, извлечение - через Dequeue.

Синтаксис

PriorityQueue<TElement, TPriority> pq = new PriorityQueue<TElement, TPriority>();

Пример

Давайте поставим элементы с приоритетами 3, 1 и 2 и снимем первый:

using System; using System.Collections.Generic; class Program { static void Main() { PriorityQueue<string, int> pq = new PriorityQueue<string, int>(); pq.Enqueue("c", 3); pq.Enqueue("a", 1); pq.Enqueue("b", 2); Console.WriteLine(pq.Dequeue()); } }

Результат выполнения кода:

"a"

Пример

Давайте опустошим очередь через Dequeue:

using System; using System.Collections.Generic; class Program { static void Main() { PriorityQueue<int, int> pq = new PriorityQueue<int, int>(); pq.Enqueue(10, 3); pq.Enqueue(20, 1); pq.Enqueue(30, 2); Console.WriteLine(pq.Dequeue()); Console.WriteLine(pq.Dequeue()); Console.WriteLine(pq.Dequeue()); } }

Результат выполнения кода:

20 30 10

Пример

Давайте посмотрим важный элемент через Peek:

using System; using System.Collections.Generic; class Program { static void Main() { PriorityQueue<string, int> pq = new PriorityQueue<string, int>(); pq.Enqueue("b", 2); pq.Enqueue("a", 1); Console.WriteLine(pq.Peek()); Console.WriteLine(pq.Count); } }

Результат выполнения кода:

"a" 2

Смотрите также

  • метод Enqueue,
    который ставит элемент с приоритетом
  • метод TryDequeue,
    который снимает без исключения на пустой очереди
  • класс Queue<T>,
    который работает строго FIFO
  • интерфейс IComparer,
    который задаёт порядок приоритетов
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить