Sobes.tech
Junior

Šta je red u kontekstu programiranja?

sobes.tech АИ

Одговор од АИ

Red (Queue) je apstraktni tip podataka koji implementira princip FIFO (First-In, First-Out), gde će prvi dodatni element biti prvi uklonjen.

Glavne operacije:

  • Enqueue: Dodavanje elementa na kraj reda.
  • Dequeue: Uklanjanje elementa sa početka reda.
  • Peek/Front: Dobijanje vrednosti elementa na početku reda bez njegovog uklanjanja.
  • IsEmpty: Provera da li je red prazan.
  • Size: Dobijanje trenutnog broja elemenata u redu.

Primeri upotrebe:

  • Upravljanje zadacima u operativnim sistemima.
  • Obrada zahteva u veb serverima.
  • Algoritmi pretraživanja grafova (BFS - Breadth-First Search).
  • Baferi za sekvencijalnu obradu podataka.

Implementacija može biti zasnovana na nizovima ili povezanim listama.

# Primer implementacije reda koristeći listu u Pythonu
class Queue:
    def __init__(self):
        self.items = []

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

    def enqueue(self, item):
        self.items.append(item) # Dodavanje na kraj

    def dequeue(self):
        if not self.is_empty():
            return self.items.pop(0) # Uklanjanje sa početka
        return None

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

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