Gli elementi vengono spesso aggiunti dalla parte posteriore e rimossi dalla parte anteriore in una coda normale. Al contrario, possiamo aggiungere e rimuovere i componenti dalla parte anteriore e posteriore di un deque. L'implementazione di un deque in C ++ può essere eseguita utilizzando un array o un elenco collegato.
Di seguito è riportato un elenco dell'implementazione dell'array di Deque. Abbiamo utilizzato gli array circolari per implementarli perché è una coda a doppia estremità. La coda a doppia estremità è più veloce ed efficiente di qualsiasi altra coda quando si tratta di aggiungere e rimuovere i componenti da entrambe le estremità.
Rappresentazione di Deque
Gli aspetti che richiedono tempo nel fare vari processi Deque includono:
Tipi di deque
Dai un'occhiata ai tipi relativi a Deque in C++.
Input DEque limitato
L'input è limitato ad un'estremità ma consentito agli altri due.
Output limitato deque
In questo deque, l'output è vietato ad un'estremità, ma l'inserimento è consentito ad entrambe le estremità.
Creazione della funzione C ++ Deque
Dobbiamo prima includere il file di intestazione Deque per generare un deque in c++.
#includereDopo aver importato questo file, è possibile utilizzare la seguente sintassi per generare un deque:
# Deque deque-name;Il tipo di dati che vorremmo archiviare nel deque è indicato da un tipo di oggetto in questo caso. Ad esempio: int, galleggiante, stringa, ecc. Deque-Name è un nome variabile per i dati che useremo.
Inizializzazione della funzione Deque
In C ++, la funzione Deque può essere inizializzata nei seguenti modi:
DequeEntrambi questi metodi sono usati per inizializzare Deque. In entrambi questi nomi Deque, "arr" viene inizializzato con i valori interi 1, 3, 7, 0, 5, 8.
Metodi di Deque
Di seguito sono riportati i metodi di Deque:
DEQUE-Struttura dei dati
Controlliamo i dettagli della struttura dei dati Deque nella sezione seguente:
Procedure su un deque
Questi passaggi devono essere seguiti prima di eseguire le operazioni successive:
Passo 1: Prendi un array n-dimensionale (Deque). In prima posizione, posizionare due puntatori e set anteriore = -1 e posteriore = 0.
Imposta un array e puntatori Deque.
Inserimento nella parte anteriore
Passo 1: Questa azione aggiunge un componente davanti. Controlla la posizione del fronte.
Se la parte anteriore è inferiore a 5, ripristinare la parte anteriore su N-1 (ultimo indice).
Passo 2: Ridurre la parte anteriore di 1 se necessario. Ora, aggiungi la nuova chiave N all'array [fronte]. Supponiamo che n = 6.
Inserimento nella parte posteriore
Passo 1: Questa azione aggiunge un componente al raro. Assicurati che l'array non sia pieno.
Passo 2: Se la coda è piena, ripristinare il valore posteriore a 0 (r = 0). Altrimenti, solleva il raro di 1.
Passaggio 3: In un array [posteriore], aggiungi la nuova chiave 6.
Togliere dalla parte anteriore
Passo 1: Un elemento nella parte anteriore viene rimosso durante il processo. Assicurati che il deque non sia vuoto.
Passo 2: La cancellazione non è possibile se il deque è vuoto (anteriore = -1) (condizione di underflow). Imposta solo il fronte = -1 e la parte posteriore = -1 se il deque è costituito da un elemento come anteriore = posteriore. Assegna il valore alla parte anteriore (anteriore = 0) se la parte anteriore è all'estremità (anteriore = n - 1). In caso contrario, impostare la parte anteriore su fronte = anteriore+1.
Togliere dalla parte posteriore
Passo 1: Un elemento alla fine viene rimosso durante il processo. Assicurati che il deque non sia vuoto.
Passo 2: La cancellazione non è possibile se il deque è vuoto (anteriore = -1) (condizione di underflow). Imposta il fronte = -1 e la parte posteriore = -1 se il deque ha solo un singolo elemento (anteriore = posteriore). Altrimenti, procedere con i seguenti passaggi. Spostamo verso la parte anteriore, posteriore = n - 1 se la parte posteriore è sulla parte anteriore (posteriore = 0). In caso contrario, imposta il raro = raro-1.
Esempio 1: creazione di deque
In questo esempio, creiamo un deque. Includiamo innanzitutto i nostri file di intestazione "#include" e #include in cui #include comanda il preprocessore per includere il file di intestazione iostream e deque che contiene tutte le funzioni del programma.
#includereSuccessivamente, descriviamo una funzione di visualizzazione _deque utilizzata per eseguire i valori deque che ci assegniamo.
Spostandosi nella nostra funzione principale, l'int main () indica che la nostra funzione deve restituire un valore intero alla fine dell'esecuzione, cosa che facciamo restituendo 0 alla conclusione del programma usando un'iniforme di inizializzazione "Deque Mydeque 4, 2, 7 , 5,8 ". In questo "int" è il tipo di dati di valori che abbiamo assegnato e Mydeque è il nome che abbiamo usato per il nostro deque. Abbiamo assegnato i valori interi al deque chiamato Mydeque che sono 4, 2, 7, 5, 8. Per visualizzare il nostro deque, abbiamo usato il ciclo per una dimensione fissa. E poi, abbiamo premuto il pulsante Run o F7 per ottenere l'output del programma.
Esempio 2: aggiunta di più valori a un deque
In questo esempio, aggiungiamo più valori a un deque. Dopo aver aggiunto i file di intestazione richiesti per questo programma, ci spostiamo nella nostra funzione principale del tipo di dati interi "deque var 0, 1, 2". In questo "int" è il tipo di dati di valori che abbiamo assegnato e "var" è il nome che abbiamo usato per il nostro deque. Assegniamo i valori interi al deque denominato "var" che sono 0, 1 e 2. Quindi, spingiamo due elementi, l'elemento 8 nella parte anteriore del deque e l'elemento 5 all'estremità del deque, usando le funzioni di push_front () e push_back () del deque. Quindi, il deque risultante che abbiamo è 8, 0, 1 e 5.
#includereUna volta che abbiamo finito con la codifica di questo esempio, lo compiliamo ed eseguiamo in qualsiasi compilatore. Il risultato raffigura l'output previsto del codice precedente.
Esempio 3: aggiornamento degli elementi su indici specificati
In questo esempio, aggiorniamo i valori in un deque dopo aver incluso i nostri file di intestazione "#include" e "#include" per questo codice eseguibile.
#includereOra andiamo verso la nostra funzione principale in cui abbiamo inizializzato per la prima volta il nostro deque chiamato "var" con i valori 1 e 2. Quindi, utilizziamo un ciclo per visualizzare i valori del nostro deque inizializzato. Per aggiornare i valori deque, utilizziamo la funzione At () (come sappiamo, la funzione AT () viene utilizzata per fare riferimento alla posizione specificata in Deque) a indice 0 e 1, assegnando nuovi valori a "var". Questi sono 3 e 4. Quindi, il nostro dequeue aggiornato è 3 e 4. Dopo aver preparato il nostro codice, lo compiliamo utilizzando qualsiasi strumento di compilatore. Ecco l'output desiderato del nostro codice:
Esempio 4: usando iterator per rimuovere i valori
In questo esempio, usiamo gli iteratori per accedere agli elementi nel Deque. Un oggetto che punta a un elemento all'interno di un contenitore è chiamato iteratore.
#includereDeque può essere iterato sia in avanti che all'indietro usando il deque :: cbegin e deque :: cend, e in entrambi i modi usando il deque :: crbegin e deque ::.
Inizialmente, abbiamo creato un iteratore che può indicare un deque di numeri interi denominati "var". Quindi, abbiamo indicato i seguenti elementi usando l'iteratore "var_inter". L'iteratore che il metodo iniziale () restituisce i punti al primo elemento. "Begin () + 1" genera un iteratore usando l'indice dell'elemento 1 come punto di partenza. Come puoi vedere, usiamo il var.end () - 1 anziché il var.FINE().
Questo perché l'iteratore per il metodo end () si collega a un iteratore che passa dall'ultimo elemento. Per ottenere l'ultimo elemento, deduciamo 1. Usiamo l'operatore indirezione * per ottenere il valore di un elemento dopo aver usato l'Inter_var per indicarlo.
Operazioni di Deque
Le operazioni fondamentali che possono essere eseguite su Deque sono le seguenti:
Conclusione
Deque è l'opzione più grande perché è più veloce e aiuta il codice a funzionare più rapidamente. Il deque funziona meglio per le sequenze di registri. Questo articolo si basa sull'implementazione di Deque e sui suoi metodi principali, che ci aiutano a modificare il Deque in base alle nostre esigenze. Miriamo a spiegare il deque e i suoi metodi, nonché con esempi di come usare il deque e quando usarlo. Lo strumento che abbiamo usato per implementare il codice è il compilatore C ++. Abbiamo fatto uno sforzo sincero per rendere questo tutorial il più semplice e comprensibile per te.