0876 - Coada

From Bitnami MediaWiki
Revision as of 20:53, 8 November 2023 by Bonte Lucas Gabriel (talk | contribs) (Pagină nouă: ==Cerința== Să se scrie un program care gestionează o coadă de numere întregi. Inițial coada este vidă. Programul va citi de la tastatură o listă de operații, care pot fi: *'''push X''' – adaugă valoarea întreagă '''X''' în coadă; *'''pop''' – elimină elementul din coadă; *'''front''' – afișează elementul de la începutul cozii. Programul va realiza asupra cozii operațiile citite, în ordine. Afișările se fac pe ecran, câte o valoare pe linie....)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerința

Să se scrie un program care gestionează o coadă de numere întregi. Inițial coada este vidă. Programul va citi de la tastatură o listă de operații, care pot fi:

  • push X – adaugă valoarea întreagă X în coadă;
  • pop – elimină elementul din coadă;
  • front – afișează elementul de la începutul cozii.

Programul va realiza asupra cozii operațiile citite, în ordine. Afișările se fac pe ecran, câte o valoare pe linie.

Date de intrare

Programul citește de la tastatură un număr n, apoi cele n operații,

Date de ieșire

Programul va afișa pe ecran numerele rezultat ale operațiilor front, câte unul pe o linie.

Restricții și precizări

  • coada nu va conține la un moment dat mai mult de 1000 elemente
  • elementele cozii vor fi cuprinse între -1.000.000 și 1.000.000
  • dacă la un moment dat se aplică operația pop și coada nu conține niciun element, operația nu are efect
  • dacă la un moment dat se aplică operația front și coada nu conține niciun element, operația nu are efect (nu se afișează nimic)

Exemplu:

Intrare
12
push 5
push 4
front
push 7
push -5
pop
front
pop
front
push 11
front
pop
Ieșire
5
4
7
7

Rezolvare

<syntaxhighlight lang="python" line="1" start="1">

  1. Definim clasa Queue

class Queue:

   def __init__(self):
       self.queue = []  # Initializam coada ca o lista goala
   # Metoda pentru adaugarea unui element in coada
   def push(self, x):
       self.queue.append(x)  # Adaugam elementul la sfarsitul cozii
   # Metoda pentru eliminarea unui element din coada
   def pop(self):
       if len(self.queue) < 1:  # Verificam daca coada este goala
           return None
       return self.queue.pop(0)  # Eliminam primul element din coada
   # Metoda pentru a obtine primul element din coada
   def front(self):
       if self.queue:  # Verificam daca coada nu este goala
           return self.queue[0]  # Returnam primul element
       else:
           return None  # Daca coada este goala, returnam None
  1. Cream o instanta a clasei Queue

queue = Queue()

  1. Citim numarul de operatii

n = int(input())

  1. Executam operatiile

for _ in range(n):

   operation = input().split()  # Citim operatia
   if operation[0] == 'push':  # Daca operatia este 'push', adaugam elementul in coada
       queue.push(int(operation[1]))
   elif operation[0] == 'pop':  # Daca operatia este 'pop', eliminam elementul din coada
       queue.pop()
   elif operation[0] == 'front':  # Daca operatia este 'front', afisam primul element din coada
       front = queue.front()
       if front is not None:  # Daca coada nu este goala, afisam elementul
           print(front)

</syntaxhighlight>