Cozile sunt un tip de adaptoare de containere care funcționează într-un aranjament primul intrat, primul ieșit (FIFO). Elementele sunt introduse în spate (capăt) și sunt șterse din față. Cozile folosesc un obiect încapsulat de deque sau listă (clasa de container secvențială) ca container subiacent, oferind un set specific de funcții membre pentru a accesa elementele sale.
În continuare este un exemplu pentru a demonstra coada și diferitele sale metode.
CPP
constructor de corzi
// CPP code to illustrate Queue in> // Standard Template Library (STL)> #include> #include> using> namespace> std;> // Print the queue> void> showq(queue<>int>>gq)> {> >queue<>int>>g = gq;> >while> (!g.empty()) {> >cout <<>' '> << g.front();> >g.pop();> >}> >cout <<>'
'>;> }> // Driver Code> int> main()> {> >queue<>int>>gquiz;> >gquiz.push(10);> >gquiz.push(20);> >gquiz.push(30);> >cout <<>'The queue gquiz is : '>;> >showq(gquiz);> >cout <<>'
gquiz.size() : '> << gquiz.size();> >cout <<>'
gquiz.front() : '> << gquiz.front();> >cout <<>'
gquiz.back() : '> << gquiz.back();> >cout <<>'
gquiz.pop() : '>;> >gquiz.pop();> >showq(gquiz);> >return> 0;> }> |
>
>Ieșire
The queue gquiz is : 10 20 30 gquiz.size() : 3 gquiz.front() : 10 gquiz.back() : 30 gquiz.pop() : 20 30>
Metodele de coadă sunt:
arhitectura java
Complexitatea timpului și definiția următoarelor funcții sunt următoarele:
| coada::empty() | O(1) |
| coada::size() | O(1) |
| coada::loc() | O(1) |
| coada::front() | O(1) |
| coada::back() | O(1) |
| coada::push(g) | O(1) |
| coada::pop() | O(1) |
| Metodă | Definiție |
|---|---|
| coada::empty() | Returnează dacă coada este goală. Returnează true dacă coada este goală, altfel returnează false. |
| coada::size() | Returnează dimensiunea cozii. |
| coada::swap() | Schimbați conținutul a două cozi, dar cozile trebuie să fie de același tip de date, deși dimensiunile pot diferi. |
| coada::loc() | Introduceți un nou element în containerul de coadă, noul element este adăugat la sfârșitul cozii. |
| coada::front() | Returnează o referință la primul element al cozii. |
| coada::back() | Returnează o referință la ultimul element al cozii. |
| coada::push(g) | Adaugă elementul „g” la sfârșitul cozii. |
| coada::pop() | Șterge primul element al cozii. |
Program C++ pentru mai multe metode
C++
// CPP code to illustrate Queue operations in STL> // Divyansh Mishra -->divyanshmishra101010> #include> #include> using> namespace> std;> // Print the queue> void> print_queue(queue<>int>>q)> {> >queue<>int>>temp = q;> >while> (!temp.empty()) {> >cout << temp.front()<<>' '>;> >temp.pop();> >}> >cout <<>'
'>;> }> // Driver Code> int> main()> {> >queue<>int>>q1;> >q1.push(1);> >q1.push(2);> >q1.push(3);> >cout <<>'The first queue is : '>;> >print_queue(q1);> > >queue<>int>>q2;> >q2.push(4);> >q2.push(5);> >q2.push(6);> >cout <<>'The second queue is : '>;> >print_queue(q2);> > > >q1.swap(q2);> > >cout <<>'After swapping, the first queue is : '>;> >print_queue(q1);> >cout <<>'After swapping the second queue is : '>;> >print_queue(q2);> > >cout/returns false since q1 is not empty return 0; }> |
755 chmod
>
>Ieșire
The first queue is : 1 2 3 The second queue is : 4 5 6 After swapping, the first queue is : 4 5 6 After swapping the second queue is : 1 2 3 0>
Complexitățile de timp și spațiu ale operațiunilor din acest cod sunt următoarele:
funcția print_queue:
Complexitatea timpului: O(n), unde n este numărul de elemente din coadă.
Complexitatea spațiului: O(n), unde n este numărul de elemente din coadă.
q1.push(1), q1.push(2), q1.push(3), q2.push(4), q2.push(5), q2.push(6):
Complexitatea timpului: O(1) pentru fiecare operație de împingere.
Complexitatea spațiului: O(n), unde n este numărul total de elemente din ambele cozi.
q1.swap(q2):
Complexitatea timpului: O(1) pentru fiecare operațiune de swap.
Complexitatea spațiului: O(1), deoarece această operație schimbă doar pointerii interni ai celor două cozi.
q1.empty():
qiuck sort
Complexitatea timpului: O(1), deoarece această operație pur și simplu verifică dacă coada este goală.
Complexitatea spațiului: O(1), deoarece nu este utilizat spațiu suplimentar pentru această operație.
În general, complexitățile de timp și spațiu ale acestui cod sunt rezonabile și eficiente pentru cazurile de utilizare tipice.
Articole recente despre Coada C++