Sobes.tech
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)