Kolejka (informatyka): Różnice pomiędzy wersjami

[wersja nieprzejrzana][wersja nieprzejrzana]
Usunięta treść Dodana treść
Thorlak (dyskusja | edycje)
Bibliografia, linki zewnętrzne, szablon
Thorlak (dyskusja | edycje)
linki zewnętrzne, wikizacja, źródła/przypisy, akt.
Linia 1:
[[Plik:Data Queue.svg|thumb|Idea kolejki]]
'''Kolejka''' ([[język angielski|ang.]] queue) – liniowa [[struktura danych]], w której nowe dane dopisywane są na końcu kolejki, a z początku kolejki pobierane są dane do dalszego przetwarzania ([[Bufor_(programowanie)|bufor]] typu '''FIFO''', ''First In, First Out''; ''pierwszy na wejściu, pierwszy na wyjściu'').
 
Operacje związane z kolejką zwyczajowo nazywa się ''enqueue'' („zakolejkuj”) oraz ''dequeue'' („odkolejkuj”){{odn|Cormen|Leiserson|Rivest|Stein|2012|s=232}}. Kolejka działa tak jak kolejka w sklepie i ma podobną strukturę. Składa się z początku (''Front'', ''Head'') oraz końca (''Back'', ''Tail''). Nowy element zawsze dodawany jest na końcu, analogicznie do klienta, który zawsze staje na końcu kolejki. Usunięcie z kolejki odpowiada obsłużeniu klienta w sklepie, czyli osoby, która aktualnie czekała najdłużej (tj. znajduje się z przodu kolejki).
Specjalną modyfikacją kolejki jest [[kolejka priorytetowa]] – każda ze znajdujących się w niej danych dodatkowo ma przypisany priorytet, który modyfikuje kolejność późniejszego wykonania. Oznacza to, że pierwsze na wyjściu niekoniecznie pojawią się te dane, które w kolejce oczekują najdłużej, lecz te o największym priorytecie.
 
Specjalną modyfikacją kolejki jest [[kolejka priorytetowa]] – każda ze znajdujących się w niej danych dodatkowo ma przypisany priorytet (klucz), który modyfikujesłuży kolejnośćdo późniejszegookreślenia wykonaniakolejności poszczególnych elementów w zbiorze. Oznacza to, że pierwsze na wyjściu niekoniecznie pojawią się te dane, które w kolejce oczekują najdłużej, lecz te o największym (lub najmniejszym) priorytecie{{odn|Cormen|Leiserson|Rivest|Stein|2012|s=161-164}}{{odn|Banachowski|Diks|Rytter|2001|s=70-78}}.
Kolejkę spotyka się przede wszystkim w sytuacjach związanych z różnego rodzaju obsługą zdarzeń. W szczególności w [[system operacyjny|systemach operacyjnych]] ma zastosowanie kolejka priorytetowa, przydzielająca zasoby sprzętowe uruchomionym [[proces (informatyka)|procesom]].
 
Kolejkę spotyka się przede wszystkim w sytuacjach związanych z różnego rodzaju obsługą zdarzeń. W szczególności w [[system operacyjny|systemach operacyjnych]] ma zastosowanie kolejka priorytetowa, przydzielająca zasoby sprzętowe uruchomionym [[proces (informatyka)|procesom]]{{r|linux_scheduler}}.
 
Przeciwieństwem kolejki jest [[stos (informatyka)|stos]], [[bufor (programowanie)|bufor]] typu '''LIFO''' (ang. ''Last In, First Out''; ''ostatni na wejściu, pierwszy na wyjściu''), w którym jako pierwsze obsługiwane są dane wprowadzone jako ostatnie.
 
== Przypisy ==
{{commonscat|Queue data structure}}
 
{{Przypisy|
{{Wikibooks | Struktury danych/Kolejki}}
<ref name="linux_scheduler">http://lse.sourceforge.net/scheduling/PrioScheduler.html</ref>
 
}}
[[Kategoria:Struktury danych]]
 
== Bibliografia ==
 
* {{Cytuj książkę | odn = tak | imię = Thomas | nazwisko = Cormen | imię2 = Charles | nazwisko2 = Leiserson | imię3 = Ronald | nazwisko3 = Rivest | imię4 = Clifford | nazwisko4 = Stein | tytuł = Wprowadzenie do algorytmów | wydawca = [[Wydawnictwo Naukowe PWN]] | miejsce = Warszawa | rok = 2012 | isbn = 978-83-01-16911-4 | rozdział = Elementarne struktury danych. Stosy i kolejki | strony = 232-233}}
 
* {{Cytuj książkę | odn = tak | imię = Lech | nazwisko = Banachowski | imię2 = Krzysztof | nazwisko2 = Diks | imię3 = Wojciech | nazwisko3 = Rytter | tytuł = Algorytmy i struktury danych | wydawca = [[Wydawnictwa Naukowo-Techniczne]] | miejsce=Warszawa | rok = 2001 | isbn = 83-204-2658-8 | rozdział = Podstawowe struktury danych. Lista | strony = 25-27}}
 
{{commonscat|Queue data structure}}
 
{{Wikibooks | Struktury danych/Kolejki}}
 
[[Kategoria:Struktury danych]]