Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- const int NMax = 1001, valMax = 1000001;
- int coada[NMax], stg = 1, dr = 0;
- // stg - pozitia primului din coada
- // dr - pozitia ultimului din coada
- void push(int x) {
- // daca pozitia pe care trebuie inserat noul element este mai mare decat maximul cozii
- if (dr == NMax - 1) {
- // deplaseaza toate elementele din coada inapoi la inceputul vectorului cu stg = 1 si dr = valoarea veche a stg
- for (int i = stg; i <= dr; i++) {
- coada[i - stg + 1] = coada[i];
- }
- dr = dr - stg + 1;
- stg = 1;
- }
- // adauga elementul pe noua ultima pozitie
- dr++;
- coada[dr] = x;
- }
- void pop() {
- // da primului element o valoare maxima, iar elementul de pe pozitia 2 devine primul
- coada[stg] = valMax;
- stg++;
- }
- void Front() {
- // Daca lungimea cozii e diferita de 0 afiseaza primul element din coada
- if (dr - stg + 1 != 0) {
- std :: cout << coada[stg] << '\n';
- }
- }
- int main() {
- int n;
- std :: cin >> n;
- for (int i = 1; i <= n; i++) {
- char tip[6];
- std :: cin >> tip;
- if (strcmp(tip, "push") == 0) {
- int x;
- std :: cin >> x;
- push(x);
- }
- else {
- if (strcmp(tip, "pop") == 0) {
- pop();
- }
- else {
- Front();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement