Le code sono un tipo di adattatori per contenitori che operano in un tipo di disposizione FIFO (first in first out). Gli elementi vengono inseriti nella parte posteriore (estremità) e vengono eliminati nella parte anteriore. Le code utilizzano un oggetto incapsulato di deque or elenco (classe contenitore sequenziale) come contenitore sottostante, fornendo un insieme specifico di funzioni membro per accedere ai suoi elementi.
Di seguito è riportato un esempio per dimostrare la coda e i suoi vari metodi.
CPP
rendere eseguibile lo script di shell
// 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;> }> |
>
>Produzione
The queue gquiz is : 10 20 30 gquiz.size() : 3 gquiz.front() : 10 gquiz.back() : 30 gquiz.pop() : 20 30>
I metodi di coda sono:
versione java linux
La complessità temporale e la definizione delle seguenti funzioni sono le seguenti:
| coda::vuoto() | O(1) |
| coda::dimensione() | O(1) |
| coda::posto() | O(1) |
| coda::front() | O(1) |
| coda::indietro() | O(1) |
| coda::push(g) | O(1) |
| coda::pop() | O(1) |
| Metodo | Definizione |
|---|---|
| coda::vuoto() | Restituisce se la coda è vuota. Restituisce vero se la coda è vuota altrimenti restituisce falso. |
| coda::dimensione() | Restituisce la dimensione della coda. |
| coda::scambia() | Scambia il contenuto di due code ma le code devono essere dello stesso tipo di dati, sebbene le dimensioni possano differire. |
| coda::posto() | Inserisci un nuovo elemento nel contenitore della coda, il nuovo elemento viene aggiunto alla fine della coda. |
| coda::front() | Restituisce un riferimento al primo elemento della coda. |
| coda::indietro() | Restituisce un riferimento all'ultimo elemento della coda. |
| coda::push(g) | Aggiunge l'elemento 'g' alla fine della coda. |
| coda::pop() | Elimina il primo elemento della coda. |
Programma C++ per alcuni altri metodi
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; }> |
>
prova a int
>Produzione
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>
Le complessità temporali e spaziali delle operazioni in questo codice sono le seguenti:
funzione print_queue:
Complessità temporale: O(n), dove n è il numero di elementi nella coda.
Complessità dello spazio: O(n), dove n è il numero di elementi nella coda.
q1.push(1), q1.push(2), q1.push(3), q2.push(4), q2.push(5), q2.push(6):
Complessità temporale: O(1) per ogni operazione di push.
Complessità dello spazio: O(n), dove n è il numero totale di elementi in entrambe le code.
q1.scambia(q2):
Complessità temporale: O(1) per ogni operazione di scambio.
Complessità dello spazio: O(1), poiché questa operazione scambia solo i puntatori interni delle due code.
q1.vuoto():
string. contiene java
Complessità temporale: O(1), poiché questa operazione controlla semplicemente se la coda è vuota.
Complessità spaziale: O(1), poiché per questa operazione non viene utilizzato spazio aggiuntivo.
Nel complesso, le complessità temporali e spaziali di questo codice sono ragionevoli ed efficienti per i casi d'uso tipici.
Articoli recenti sulla coda C++