Des éléments sont souvent ajoutés à l'arrière et retirés de l'avant dans une file d'attente normale. En revanche, nous pouvons ajouter et retirer les composants de l'avant et de l'arrière d'un désublication. La mise en œuvre d'un deque en C ++ peut être effectuée à l'aide d'un tableau ou d'une liste liée.
Vous trouverez ci-dessous une liste de l'implémentation du tableau de Deque. Nous avons utilisé les tableaux circulaires pour l'implémenter car il s'agit d'une file d'attente à double extrémité. La file d'attente à double extrémité est plus rapide et plus efficace que toute autre file d'attente lorsqu'il s'agit d'ajouter et de retirer les composants des deux extrémités.
Représentation de Deque
Les aspects longs de la réalisation de divers processus de déshabillement comprennent:
Types de Deque
Voyons les types liés à Deque en C++.
Entrée Deque restreinte
L'entrée est confinée à une extrémité mais autorisée aux deux autres.
Deque de sortie de sortie
Dans ce deque, la sortie est interdite à une extrémité, mais l'insertion est autorisée aux deux extrémités.
Création de la fonction de deque C ++
Nous devons d'abord inclure le fichier d'en-tête DEQU++.
#inclureAprès l'importation de ce fichier, la syntaxe suivante peut être utilisée pour générer un désactivation:
# Deque deque-nom;Le type de données que nous aimerions stocker dans le Deque est indiqué par un type objet dans ce cas. Par exemple: int, flotteur, chaîne, etc. Deque-name est un nom de variable pour les données que nous allons utiliser.
Initialisation de la fonction Deque
En C ++, la fonction de Deque peut être initialisée de la manière suivante:
se débarrasserCes deux méthodes sont utilisées pour initialiser Deque. Dans ces deux noms de désactivation, «arr» est initialisé avec des valeurs entières 1, 3, 7, 0, 5, 8.
Méthodes de désactivation
Voici les méthodes de désactivation:
Déquez-structure des données
Vérifions les détails de la structure des données Deque dans la section suivante:
Procédures sur un désactivation
Ces étapes doivent être suivies avant d'effectuer les opérations suivantes:
Étape 1: Prenez un tableau N dimensionnel (Deque). En première position, placez deux pointeurs et réglez avant = -1 et arrière = 0.
Configurez un tableau et des pointeurs Deque.
Insertion à l'avant
Étape 1: Cette action ajoute un composant devant. Vérifiez l'emplacement du front.
Si l'avant est inférieur à 5, réinitialisez l'avant à N-1 (dernier index).
Étape 2: Réduisez l'avant par 1 si nécessaire. Maintenant, ajoutez la nouvelle clé N au tableau [Front]. Supposons que n = 6.
Insertion à l'arrière
Étape 1: Cette action ajoute un composant au rare. Assurez-vous que le tableau n'est pas plein.
Étape 2: Si la file d'attente est pleine, réinitialisez la valeur arrière à 0 (r = 0). Sinon, augmentez le rare par 1.
Étape 3: Dans un tableau [arrière], ajoutez la nouvelle clé 6.
Retirer de l'avant
Étape 1: Un élément à l'avant est supprimé pendant le processus. Assurez-vous que le deque n'est pas vide.
Étape 2: La suppression n'est pas possible si le deque est vide (avant = -1) (condition de sous-écoulement). Réglez l'avant = -1 uniquement et l'arrière = -1 si le deque se compose d'un élément tel que avant = arrière. Attribuez la valeur à l'avant (avant = 0) si l'avant est à la fin (avant = n - 1). Sinon, réglez l'avant à l'avant = avant + 1.
Retirer de l'arrière
Étape 1: Un élément à la fin est supprimé pendant le processus. Assurez-vous que le deque n'est pas vide.
Étape 2: La suppression n'est pas possible si le deque est vide (avant = -1) (condition de sous-écoulement). Réglez l'avant = -1 et l'arrière = -1 si le deque n'a qu'un seul élément (avant = arrière). Sinon, procédez avec les étapes suivantes. Passons vers l'avant, arrière = n - 1 Si l'arrière est à l'avant (arrière = 0). Sinon, définissez le rare = rare-1.
Exemple 1: Création de Deque
Dans cet exemple, nous créons un deque. Nous incluons d'abord nos fichiers d'en-tête «#include» et #include où #include commande le préprocesseur pour inclure le fichier d'en-tête iOStream et Deque qui contient toutes les fonctions du programme.
#inclureAprès cela, nous décrivons une fonction d'affichage _Deque utilisée pour exécuter les valeurs de deque que nous lui attribuons.
En passant dans notre fonction principale, le int Main () indique que notre fonction doit renvoyer une valeur entière à la fin de l'exécution, ce que nous faisons en renvoyant 0 à la conclusion du programme en utilisant une initialisation uniforme «Deque Mydeque 4, 2, 7 , 5,8 ". Dans ce «int» est le type de valeurs de données que nous avons attribué et MyDeque est le nom que nous avons utilisé pour notre désuté. Nous avons attribué les valeurs entières au deque nommé MyDeque qui sont 4, 2, 7, 5, 8. Pour afficher notre désuté, nous avons utilisé la boucle pour une taille fixe. Et puis, nous avons appuyé sur le bouton Exécuter ou F7 pour obtenir la sortie du programme.
Exemple 2: ajoutant plus de valeurs à un désactive
Dans cet exemple, nous ajoutons plus de valeurs à un désactive. Après avoir ajouté les fichiers d'en-tête requis pour ce programme, nous passons à notre fonction principale du type de données entier «Deque var 0, 1, 2». Dans ce «int» est le type de valeurs de données que nous avons attribué et «var» est le nom que nous avons utilisé pour notre désuté. Nous attribuons les valeurs entières au deque nommé «var» qui sont 0, 1 et 2. Ensuite, nous poussons deux éléments, l'élément 8 à l'avant de la deque et de l'élément 5 à la fin du deque, en utilisant les fonctions push_front () et push_back () du deque. Ainsi, le deque résultant que nous avons est 8, 0, 1 et 5.
#inclureUne fois que nous avons terminé le codage de cet exemple, nous le compilons et l'exécutons dans n'importe quel compilateur. Le résultat représente la sortie attendue du code précédent.
Exemple 3: Mise à jour des éléments à des index spécifiés
Dans cet exemple, nous mettons à jour les valeurs dans un désactive après avoir inclus nos fichiers d'en-tête «#include» et «#include» pour ce code exécutable.
#inclureMaintenant, nous allons vers notre fonction principale dans laquelle nous avons d'abord initialisé notre désublicité nommé «var» avec les valeurs 1 et 2. Ensuite, nous utilisons une boucle pour afficher les valeurs de notre déque initialisé. Pour mettre à jour les valeurs de deque, nous utilisons la fonction AT () (comme nous le savons, la fonction AT () est utilisée pour se référer à la position spécifiée dans le DEQI) à l'index 0 et 1, attribuant de nouvelles valeurs à «var». Ce sont 3 et 4. Ensuite, notre déshumation mise à jour est de 3 et 4. Après avoir préparé notre code, nous le compilons à l'aide de n'importe quel outil de compilateur. Voici la sortie souhaitée de notre code:
Exemple 4: Utilisation d'Iterator pour supprimer les valeurs
Dans cet exemple, nous utilisons les itérateurs pour accéder aux éléments de la deque. Un objet qui pointe vers un élément à l'intérieur d'un conteneur est appelé un itérateur.
#inclureDeque peut être itéré à la fois vers l'avant et vers l'arrière en utilisant le deque :: cbegin et deque :: cend, et de deux manières en utilisant le deque :: crbegin et deque :: Crend.
Initialement, nous avons créé un itérateur qui peut pointer vers un désuté des entiers nommés «var». Ensuite, nous avons indiqué les éléments suivants en utilisant l'itérateur «var_inter». L'itérateur que la méthode commence () renvoie des points au premier élément. Le «début () + 1» génère un itérateur en utilisant l'index de l'élément 1 comme point de départ. Comme vous pouvez le voir, nous utilisons le var.end () - 1 plutôt que le var.fin().
En effet. Pour obtenir le dernier élément, nous déduisons 1. Nous utilisons l'opérateur d'indirection * pour obtenir la valeur d'un élément après avoir utilisé l'inter_var pour le pointer.
Opérations de Deque
Les opérations fondamentales qui peuvent être effectuées sur Deque sont les suivantes:
Conclusion
Deque est la meilleure option car elle est plus rapide et aide le code à s'exécuter plus rapidement. Le Deque fonctionne mieux pour les séquences de journal. Cet article est basé sur la mise en œuvre de Deque et ses principales méthodes, qui nous aident à modifier le deque en fonction de nos besoins. Nous visons à expliquer le deque et ses méthodes ainsi qu'avec des exemples de comment utiliser le deque et quand l'utiliser. L'outil que nous avons utilisé pour implémenter le code est le compilateur C ++. Nous avons fait un effort sincère pour rendre ce tutoriel aussi simple et aussi compréhensible que possible pour vous.