Narzędzia użytkownika

Narzędzia witryny


push_heap_pop_heap

To jest stara wersja strony!


push_heap i pop_heap - opis algorytmów

Algorytmy push_heap i pop_heap służą do operacji na kolekcjach danych, w których elementy ustawione są w strukturze kopca (stogu). Algorytm push_heap dodaje nowy element do kolekcji, a algorytm pop_heap zdejmuje element ze szczytu kopca. Struktura kopca po zastosowaniu tych algorytmów pozostaje niezachwiana.

Nagłówek

 #include<algorithm> 

Aby korzystać z algorytmów push_heap i pop_heap musimy dodać plik nagłówkowy <algorithm>.

Struktura kopca

Użycie algorytmów push_heap i pop_heap ma sens jedynie wtedy, gdy kolekcja danych przechowuje elementy w strukturze kopca. Aby uzyskać strukturę kopca wykorzystujemy algorytm make_heap. Przykłady użycia i jego opis można znaleźć w tym pliku: make_heap1.cpp

Na rysunku została przedstawiona kolekcja danych z elementami uporządkowanymi w kopiec. Kolorem czerwonym oznaczono indeksy tablicy. Kopiec sprawia, że na pierwszej pozycji znajduje się największy element (element tablicy o indeksie 0). Każde następne elementy są indeksowane według reguły:

  • jeśli rodzic ma indeks n to jego dzieci maja indeksy 2n+1 i 2n+2

push_heap - konstrukcja

   template <class RandomAccessIterator>
            void push_heap ( RandomAccessIterator first, RandomAccessIterator last );
 
   template <class RandomAccessIterator, class Compare>
            void push_heap ( RandomAccessIterator first, RandomAccessIterator last,
                   Compare comp );
push_heap_pop_heap.1239383489.txt.gz · ostatnio zmienione: 2009/04/10 19:11 przez marszaaljr