Объектно-ориентированное программирование на c++


Download 56.06 Kb.
bet7/8
Sana18.06.2023
Hajmi56.06 Kb.
#1592783
TuriЛекция
1   2   3   4   5   6   7   8

 public:

  •  public:
  • priority_queue(const Compare& х = Compare()): c(), comp(х) { }
  • template
  • priority_queue(InputIterator first, InputIterator last,
  • const Compare& х = Compare()): c(first, last), comp(x)
  • { make_heap( c.begin(), с.end(), comp); }
  • bool empty() const { return c.empty();}
  • size_type size() const { return c.size(); }
  • const value_type& top() const { return c.front();}
  • void push(const value_type& х) {
  • c.push_back(х);
  • push_heap(c.begin(), c.end(), comp);
  • }
  • void pop() {
  • pop_heap(c.begin(), c.end(), comp);
  • с.рор_bасk();
  • }
  • }; // Никакое равенство не полагается

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

  • Очереди с приоритетом - это тип контейнерных адаптеров, специально разработанных таким образом, чтобы его первый элемент всегда был самым большим из содержащихся в нем элементов, в соответствии с каким-то критерием упорядочивания.
  • Контекст использования этого адаптера похож на кучу, где элементы могут быть вставлены в любой момент, и только максимальный элемент кучи может быть извлечен (тот, который находится сверху в очереди приоритетов).
  • Очереди с приоритетом реализуются в виде контейнерных адаптеров, которые представляют собой классы, использующие инкапсулированный объект конкретного контейнерного класса в качестве своего базового контейнера, предоставляющего определенный набор функций-членов для доступа к своим элементам.

Способы реализации очереди с приоритетами

  • В очереди с приоритетами каждому элементу ставится в соответствие приоритет (весовой коэффициент).
  • Очередь с приоритетами может быть реализована одним из двух способов:
  • - очередь с приоритетным включением. В этом случае элемент, который добавляется в очередь, сразу размещается в ней в соответствии с его приоритетом. При удалении, этот элемент просто отсекается с конца очереди;
  • - очередь с приоритетным исключением. В этом случае новый элемент просто добавляется в конец очереди. А вытягивание элемента из очереди осуществляется по его приоритету, то есть вытягивается элемент с наивысшим приоритетом.

Download 56.06 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling