ALG6

ALG6



136 Rozdział 5. Struktury danycł

forfint i=0; i<4;i+~)

kolejka.wstaw(tab[i)); for(i=0; i<5;i++)

{

char *s;

int rcs=kolejka.obsłuż(5); if (res==l)

cout « "Obsłużony został klient:" << s « endl;

else

cout « "Kolejka pu3ta!\n";

)

)

Zasada obsługi kolejki (w krajach cywilizowanych) polega na uwzględnianiu w pierwszej kolejności osób, które zjawiły się na samym początku. Tak też jest w naszym przykładzie, o czym najdobitniej świadczą rezultaty wykonania programu:

Obsłużony klient:Kowalska Obsłużony klient:Fronczak Obsłużony klient:Becki Obsłużony klient:Pigwa Kolejka pusta!

5.5. Sterty i kolejki priorytetowe

W paragrafach poprzednich mieliśmy okazję zapoznać się m.in. z dwiema strukturami danych stanowiącymi swoje skrajności „ideowe”:

•    kolejką - usuwało się z niej w pierwszej kolejności „najstarszy” element;

•    stosem - usuwało się z niego w pierwszej kolejności „najmłodszy” element.

Były to struktury danych służące z zasady do zapamiętywania danych nieuporządkowanych, co zdecydowanie upraszczało wszelkie operacje! Kolejna zaś struktura danych, którą będziemy się zajmować kolejki priorytetowe - działa wg zupełnie odmiennej filozofii, choć zachowuje ciągle zaletę operowania nieuporządkowanym zbiorem danych. (Stwierdzenie o nieuporządkowaniu jest prawdą w sensie globalnym - lokalnie fragmenty sterty są w pewien szczególny sposób uporządkowane, o czym przekonamy się już za moment).Dwie podstawowe operacje wykonywane na kolejkach priorytetowych polegają na:

•    zwykłym wstawianiu nowego elementu;

•    usuwaniu największego elementu'.

' Jeśli w kolejce priorytetowej będą składowane rekordy o pewnej strukturze, to jednym z pól rekordu będzie jego priorytet wyrażony w postaci liczby całkowitej dodatniej lub


Wyszukiwarka

Podobne podstrony:
ALG 6 96 Rozdział 5. Struktury danych Rys. 5 - 3. FCOOh FCI4h FFEEh Przykład listy jedno-kierunk
ALG6 106 Rozdziała. Strukturydanjt 5.1 będzie ich fuzją. Rekurencyjny zapis tego procesu jest bardz
ALG6 116 Rozdział 5. Struktury danych Iisla2.li int alfabetycznie(ELEMENT *q],ELEMENT *q2) { II czy
ALG6 126 Rozdział 5. Struktury danych Rys. 5 - 12. Metoda„ tablic równoległych " (2) DANE L2
ALG6 146 Rozdział 5. Struktury danycti Jak widać, inteligentne użycie tablic może nam podsunąć możl
ALG6 156 Rozdział 5. Struktury danya Proces przechadzania się po drzewie nie jest bynajmniej zakońc
ET6 136 Rozdział 8. Ceny usług turystycznych T. Nagle zidentyfikował dziewięć czynników kształtując
ALG6 26 RozdziaH. Zanim wystartujemy 1.5 metody niezmienników (zwanej niekiedy metodą Floyda). Mają
ALG6 36 Rozdział 2. Rekurencja każemy. W rozdziale 9 zostanie omówiona ciekawa technika programowan
ALG6 46_ _ Rozdział2. Rekurencja rekurencyjnych jest pamięcioźerność: wielokrotne wywołania rekuren
ALG6 56 Rozdział 3. Analiza sprawności algorytmów jest intuicyjnie bardzo proste, dalej będziemy uż
ALG6 66 Rozdział 3. Analiza sprawności algorytmów return pos; else    //element zost
ALG6 76 Rozdział 3. Analiza sprawności algorytmów Analogicznie dla 2 otrzymamy: Vn > 1, A(n,2) =
ALG6 86 Rozdział 4. Algorytmy sortowania zamiany sąsiadujących ze sobą elementów, a druga będzie wy
ALG 4 94 Rozdział 5. Struktury danych5.1. Listy jednokierunkowe Lista jednokierunkowa jest oszczędną
ALG 8 98 Rozdział 5. Struktury danych W następnych paragrafach zostaną przedstawione wszystkie metod
ALG0 100 Rozdział 5. Struktury danyi z tych przypadków w istniejącej liście trzeba znaleźć miejsce
ALG2 102___Rozdział 5. Struktury danych I ELEMENT *q=inf.głowa; if (pusta()) cout << "(l

więcej podobnych podstron