Sobes.tech
Junior

Co je fronta v kontextu programování?

sobes.tech AI

Odpověď od AI

Fronta (Queue) je abstraktní datový typ, který implementuje princip FIFO (First-In, First-Out), kde první přidaný prvek bude prvním odebraným.

Hlavní operace:

  • Enqueue: Přidání prvku na konec fronty.
  • Dequeue: Odebrání prvku z začátku fronty.
  • Peek/Front: Získání hodnoty prvku na začátku fronty bez jeho odebrání.
  • IsEmpty: Kontrola, zda je fronta prázdná.
  • Size: Získání aktuálního počtu prvků ve frontě.

Příklady použití:

  • Řízení úloh v operačních systémech.
  • Zpracování požadavků na webových serverech.
  • Algoritmy průchodu grafem (BFS - Breadth-First Search).
  • Buffery pro sekvenční zpracování dat.

Implementace může být založena na polích nebo spojových seznamech.

# Příklad implementace fronty s použitím seznamu v Pythonu
class Queue:
    def __init__(self):
        self.items = []

    def is_empty(self):
        return self.items == []

    def enqueue(self, item):
        self.items.append(item) # Přidat na konec

    def dequeue(self):
        if not self.is_empty():
            return self.items.pop(0) # Odebrat z začátku
        return None

    def peek(self):
        if not self.is_empty():
            return self.items[0]
        return None

    def size(self):
        return len(self.items)