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)