Advertisement
Guest User

Untitled

a guest
Jan 20th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.42 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. const int NMax = 1001, valMax = 1000001;
  5. int coada[NMax], stg = 1, dr = 0;
  6. // stg - pozitia primului din coada
  7. // dr - pozitia ultimului din coada
  8.  
  9. void push(int x) {
  10.     // daca pozitia pe care trebuie inserat noul element este mai mare decat maximul cozii
  11.     if (dr == NMax - 1) {
  12.         // deplaseaza toate elementele din coada inapoi la inceputul vectorului cu stg = 1 si dr = valoarea veche a stg
  13.         for (int i = stg; i <= dr; i++) {
  14.             coada[i - stg + 1] = coada[i];
  15.         }
  16.         dr = dr - stg + 1;
  17.         stg = 1;
  18.     }
  19.     // adauga elementul pe noua ultima pozitie
  20.     dr++;
  21.     coada[dr] = x;
  22. }
  23.  
  24. void pop() {
  25.     // da primului element o valoare maxima, iar elementul de pe pozitia 2 devine primul
  26.     coada[stg] = valMax;
  27.     stg++;
  28. }
  29.  
  30. void Front() {
  31.     // Daca lungimea cozii e diferita de 0 afiseaza primul element din coada
  32.     if (dr - stg + 1 != 0) {
  33.         std :: cout << coada[stg] << '\n';
  34.     }
  35. }
  36.  
  37. int main() {
  38.     int n;
  39.     std :: cin >> n;
  40.     for (int i = 1; i <= n; i++) {
  41.         char tip[6];
  42.         std :: cin >> tip;
  43.         if (strcmp(tip, "push") == 0) {
  44.             int x;
  45.             std :: cin >> x;
  46.             push(x);
  47.         }
  48.         else {
  49.             if (strcmp(tip, "pop") == 0) {
  50.                 pop();
  51.             }
  52.             else {
  53.                 Front();
  54.             }
  55.         }
  56.     }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement