Wachtrijen zijn een soort containeradapters die werken in een first in first out (FIFO)-type opstelling. Elementen worden aan de achterkant (einde) ingevoegd en aan de voorkant verwijderd. Wachtrijen gebruiken een ingekapseld object van deque of lijst (sequentiële containerklasse) als de onderliggende container, waardoor een specifieke set lidfuncties wordt geboden om toegang te krijgen tot de elementen ervan.
Hieronder volgt een voorbeeld om de wachtrij en de verschillende methoden ervan te demonstreren.
CPP
wat is winterslaap in Java
// 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;> }> |
>
>Uitvoer
The queue gquiz is : 10 20 30 gquiz.size() : 3 gquiz.front() : 10 gquiz.back() : 30 gquiz.pop() : 20 30>
Methoden voor wachtrij zijn:
char + int in Java
De tijdscomplexiteit en definitie van de volgende functies zijn als volgt:
| wachtrij::leeg() | O(1) |
| wachtrij::grootte() | O(1) |
| wachtrij::plaats() | O(1) |
| wachtrij::front() | O(1) |
| wachtrij::terug() | O(1) |
| wachtrij::duwen(g) | O(1) |
| wachtrij::pop() | O(1) |
| Methode | Definitie |
|---|---|
| wachtrij::leeg() | Geeft terug of de wachtrij leeg is. Het retourneert waar als de wachtrij leeg is, retourneert anders onwaar. |
| wachtrij::grootte() | Retourneert de grootte van de wachtrij. |
| wachtrij::swap() | Wissel de inhoud van twee wachtrijen uit, maar de wachtrijen moeten van hetzelfde gegevenstype zijn, hoewel de grootte kan verschillen. |
| wachtrij::plaats() | Voeg een nieuw element in de wachtrijcontainer in, het nieuwe element wordt aan het einde van de wachtrij toegevoegd. |
| wachtrij::front() | Retourneert een verwijzing naar het eerste element van de wachtrij. |
| wachtrij::terug() | Retourneert een verwijzing naar het laatste element van de wachtrij. |
| wachtrij::duwen(g) | Voegt het element ‘g’ toe aan het einde van de wachtrij. |
| wachtrij::pop() | Verwijdert het eerste element van de wachtrij. |
C++-programma voor nog meer methoden
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>>temperatuur = 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; }> |
>
subtekenreeks in bash
>Uitvoer
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>
De tijd- en ruimtecomplexiteit van de bewerkingen in deze code is als volgt:
print_queue-functie:
Tijdcomplexiteit: O(n), waarbij n het aantal elementen in de wachtrij is.
Ruimtecomplexiteit: O(n), waarbij n het aantal elementen in de wachtrij is.
q1.push(1), q1.push(2), q1.push(3), q2.push(4), q2.push(5), q2.push(6):
Tijdcomplexiteit: O(1) voor elke push-operatie.
Ruimtecomplexiteit: O(n), waarbij n het totale aantal elementen in beide wachtrijen is.
q1.wissel(q2):
Tijdcomplexiteit: O(1) voor elke swapoperatie.
Ruimtecomplexiteit: O(1), aangezien deze bewerking alleen de interne pointers van de twee wachtrijen verwisselt.
q1.leeg():
aes versus des
Tijdcomplexiteit: O(1), omdat deze bewerking eenvoudigweg controleert of de wachtrij leeg is.
Ruimtecomplexiteit: O(1), omdat er voor deze bewerking geen extra ruimte wordt gebruikt.
Over het geheel genomen zijn de tijd- en ruimtecomplexiteit van deze code redelijk en efficiënt voor typische gebruiksscenario's.
Recente artikelen over C++-wachtrij