Kolejka (informatyka)

Idea kolejki

Kolejka (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 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”)[1]. 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 (klucz), który służy do określenia kolejnoś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[2][3].

Kolejkę spotyka się przede wszystkim w sytuacjach związanych z różnego rodzaju obsługą zdarzeń. W szczególności w systemach operacyjnych ma zastosowanie kolejka priorytetowa, przydzielająca zasoby sprzętowe uruchomionym procesom[4].

Przeciwieństwem kolejki jest stos, 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

  1. Cormen i in. 2012 ↓, s. 232.
  2. Cormen i in. 2012 ↓, s. 161-164.
  3. Banachowski, Diks i Rytter 2001 ↓, s. 70-78.
  4. Linux Priority-Queue Scheduler. lse.sourceforge.net. [dostęp 2018-03-13].

Bibliografia

  • „Elementarne struktury danych”: „Stosy i kolejki”. W: Thomas Cormen, Charles Leiserson, Ronald Rivest, Clifford Stein: Wprowadzenie do algorytmów. Warszawa: Wydawnictwo Naukowe PWN, 2012, s. 232-233. ISBN 978-83-01-16911-4.
  • „Podstawowe struktury danych”: „Lista”. W: Lech Banachowski, Krzysztof Diks, Wojciech Rytter: Algorytmy i struktury danych. Warszawa: Wydawnictwa Naukowo-Techniczne, 2001, s. 25-27. ISBN 83-204-2658-8.



Media użyte na tej stronie

Data Queue.svg
Autor:
This Image was created by User:Vegpuff.
  • If you are using the image under the creative commons share alike license please credit the photo Vegpuff/Wikipedia and include a link to this page. No explicit permission is needed from me, but an email if my work has been of help to you.
  • If you dont want to release your work under a creative commons license, please mail me at vegpuff@gmail.com or catch me at my twitter stream for a custom license.
, Licencja: CC BY-SA 3.0
Diagram representing Data Queues