Junior
Czym jest kolejka w kontekście programowania?
sobes.tech AI
Odpowiedź od AI
Kolejka (Queue) jest abstrakcyjnym typem danych, który implementuje zasadę FIFO (First-In, First-Out), gdzie pierwszy dodany element będzie pierwszym usuniętym.
Główne operacje:
- Enqueue: Dodanie elementu na koniec kolejki.
- Dequeue: Usunięcie elementu z początku kolejki.
- Peek/Front: Uzyskanie wartości elementu na początku kolejki bez jego usuwania.
- IsEmpty: Sprawdzenie, czy kolejka jest pusta.
- Size: Uzyskanie aktualnej liczby elementów w kolejce.
Przykłady zastosowania:
- Zarządzanie zadaniami w systemach operacyjnych.
- Obsługa żądań w serwerach internetowych.
- Algorytmy przeszukiwania grafów (BFS - Breadth-First Search).
- Bufory do sekwencyjnej obróbki danych.
Implementacja może opierać się na tablicach lub listach powiązanych.
# Przykład implementacji kolejki z użyciem listy w Pythonie
class Queue:
def __init__(self):
self.items = []
def is_empty(self):
return self.items == []
def enqueue(self, item):
self.items.append(item) # Dodaj na koniec
def dequeue(self):
if not self.is_empty():
return self.items.pop(0) # Usuń z początku
return None
def peek(self):
if not self.is_empty():
return self.items[0]
return None
def size(self):
return len(self.items)