конец // Внести изменения в к

Автор admin Среда, 10 июня 2009 11:32

конец // Внести изменения в кучу: push_heap(this->begin(). this->end(). comp): } void popO { assureHeapO: // Перемещение верхнего элемента в последнюю позицию: pop_heap(this->begin(). this->end(). comp): // Удаление элемента: pop_back(): } void sortО { ifdsorted) { sort_heap(this->begin(). this->end(). comp); reverse(this->begin(). this->end()): sorted = true: } } }: int mainO { PQV > pqi: srand(time(0)): forOnt i = 0: i < 100: 1++) { pqi.push(rand() % 25): copy(pqi.beginO. pqi.endO, ostream_iterator(cout. ” “)): cout « “\n—–\n”; } pqi .sortO: copy(pqi .beginO. pqi.endO. ostream_iterator(cout. ” “)): cout « “\n…..\n”: Приоритетная очередь 387 while(!pqi .emptyO) { cout « pqi.top() « ‘ ‘: pqi.pop(): } } ///:- Если флаг sorted равен true, значит, вектор не оформлен в виде кучи, а содержит отсортированную последовательность. Функция assureHeap() гарантирует, что он будет возвращен к нужной форме перед выполнением каких-либо операций, специфических для кучи. Теперь первый цикл for в функции main() выводит содержимое кучи по мере ее построения. В двух предыдущих программах нам


Комментарии закрыты.