Köer är en typ av containeradaptrar som fungerar i ett arrangemang av först in först ut (FIFO). Element infogas på baksidan (änden) och tas bort från framsidan. Köer använder ett inkapslat föremål för deque eller lista (sekventiell containerklass) som dess underliggande container, vilket ger en specifik uppsättning medlemsfunktioner för att komma åt dess element.
Nedan följer ett exempel för att demonstrera kön och dess olika metoder.
CPP
hur man hittar dolda saker på Android
// 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;> }> |
>
>Produktion
The queue gquiz is : 10 20 30 gquiz.size() : 3 gquiz.front() : 10 gquiz.back() : 30 gquiz.pop() : 20 30>
Metoder för kö är:
år in i kvartalen
Tidskomplexiteten och definitionen av följande funktioner är som följer:
| queue::empty() | O(1) |
| queue::size() | O(1) |
| kö::place() | O(1) |
| kö::front() | O(1) |
| kö::back() | O(1) |
| kö::push(g) | O(1) |
| kö::pop() | O(1) |
| Metod | Definition |
|---|---|
| queue::empty() | Returnerar om kön är tom. Den returnerar true om kön är tom returnerar annars falskt. |
| queue::size() | Returnerar storleken på kön. |
| kö::swap() | Byt ut innehållet i två köer men köerna måste vara av samma datatyp, även om storlekarna kan skilja sig åt. |
| kö::place() | Infoga ett nytt element i köbehållaren, det nya elementet läggs till i slutet av kön. |
| kö::front() | Returnerar en referens till det första elementet i kön. |
| kö::back() | Returnerar en referens till det sista elementet i kön. |
| queue::push(g) | Lägger till elementet 'g' i slutet av kön. |
| kö::pop() | Tar bort det första elementet i kön. |
C++-program för några fler metoder
C++
konvertera int till sträng java
// 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; }> |
>
>Produktion
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>
Tids- och rumskomplexiteten för operationerna i denna kod är följande:
print_queue funktion:
Tidskomplexitet: O(n), där n är antalet element i kön.
Utrymmeskomplexitet: O(n), där n är antalet element i kön.
q1.push(1), q1.push(2), q1.push(3), q2.push(4), q2.push(5), q2.push(6):
Tidskomplexitet: O(1) för varje push-operation.
Utrymmeskomplexitet: O(n), där n är det totala antalet element i båda köerna.
q1.swap(q2):
Tidskomplexitet: O(1) för varje bytesoperation.
Utrymmeskomplexitet: O(1), eftersom denna operation endast byter ut de interna pekarna för de två köerna.
q1.empty():
om annars loop i java
Tidskomplexitet: O(1), eftersom denna operation helt enkelt kontrollerar om kön är tom.
Utrymmeskomplexitet: O(1), eftersom inget extra utrymme används för denna operation.
Sammantaget är tids- och utrymmeskomplexiteten för denna kod rimlig och effektiv för typiska användningsfall.
Senaste artiklar om C++ Queue