Implémentation de la liste doublement liée C ++

Implémentation de la liste doublement liée C ++
Une liste doublement liée est le concept structurel en C ++ qui se compose de 1 ou plusieurs nœuds. Un seul nœud doit avoir trois parties I.e., Données, une référence au nœud précédent et le prochain nœud à venir. Le tout premier nœud serait le nœud «tête» qui est utilisé pour accéder à la liste globale liée. Le tout dernier nœud d'une liste liée a toujours la valeur nulle. Si vous êtes nouveau dans ce concept et que vous recherchez des ressources authentiques pour obtenir des connaissances, alors ce guide est pour vous.

Commençons cet article avec la nouvelle création de fichiers C ++. Nous devons le créer en utilisant la requête «Touch» terminale. Après la création de fichiers, notre prochaine tâche consiste à l'ouvrir et à créer du code C ++. Pour l'ouverture, vous pouvez utiliser tout éditeur intégré d'Ubuntu 20.04 Comme un éditeur de texte, un éditeur VIM ou un éditeur GNU Nano. Donc, nous utilisons l'instruction «nano» sur notre coquille pour ouvrir le double.Fichier CC dedans.

Exemple 01:

Faisons un exemple de base de base de C ++ pour créer une liste à double liaison. Après l'ouverture du fichier, nous avons ajouté l'iOStream. L'espace de noms standard C ++ sera utilisé. Après cela, nous avons créé une structure de nœud nommée «Node» avec certains de ses éléments. Il contient la variable entière «D» comme partie de données. Ensuite, nous avons défini trois nouvelles structures de nœuds. Le nœud «p» affiche le nœud précédent, «n» affiche le nœud suivant, et le nœud de tête «H» est spécifié null comme autre nœud.

Maintenant, la structure ci-dessus n'est pas utile avant d'ajouter et de montrer quelques nœuds dans le code du programme. Nous utilisons la fonction ADD () pour obtenir les données de nœud de la fonction principale (). À sa première ligne, nous avons créé un nouveau nœud «nouveau nœud» en utilisant la structure «nœud» et lui attribuant une mémoire égale à la taille d'un «nœud». Les caractères de signe «->» sont utilisés pour faire référence aux parties du nœud I.e., Ensuite, précédent, données, etc. Ainsi, nous avons référencé les données d'un nouveau nœud en utilisant -> chanter et ajouter des données transmises par la fonction principale () dans le paramètre «nd» dans la variable «d» d'un nouveau nœud. Le nœud précédent d'un nouveau nœud sera initialisé à Null et son prochain nœud sera une «tête». L'instruction «IF» est là pour vérifier que la valeur de la tête «H» n'est pas égale à Null. Si la valeur de «H» n'est pas nul, elle fera le nœud précédent d'un nœud «tête», un nouveau nœud. De plus, la tête sera également un nouveau nœud.e., Avoir une valeur d'un nouveau nœud.

Voici la fonction «show ()» pour afficher le nœud créé. À l'intérieur, nous avons créé un nœud «ptr» et nous en avons fait une «tête». La boucle «while» est là pour confirmer que la valeur de «ptr» n'est pas nul. Bien que la condition soit satisfaite, l'instruction COUT affichera les données ajoutées par un utilisateur de la même manière mais opposée. Maintenant, le prochain des nœuds «PTR» deviendra «PTR».

Voici notre fonction principale () d'où commence l'exécution. Nous avons appelé la fonction «Ajouter» 4 fois pour créer un nouveau nœud et ajouter des données dans la variable «D» d'un nouveau. L'instruction COUT nous montre que nous appellerons la fonction «Show» pour afficher tous les nœuds que nous avons ajoutés.

Maintenant, il est temps de compiler ce code C ++ dans le compilateur G ++ d'Ubuntu pour la langue C ++. En exécutant le code avec «./un.out », nous avons été affichés avec les données de 4 nœuds dans l'ordre opposé I.e., Nous avons ajouté en 4, 12, 2, 7 de l'ordre et il revient en 7, 2, 12, 4, montrant la dernière commande de premier service.

Exemple 02:

Regardons un autre exemple de liste à double liaison. A créé une structure «nœud» avec la même variable «d», le nœud suivant «n» et le nœud précédent «P».

Maintenant, nous utilisons la fonction frontpush () pour insérer un nœud au début avec ses données i.e. nœud de tête. Nous avons créé un nouveau nœud à l'intérieur i.e. «NewNode» en utilisant la syntaxe de structure «Node *». Après cela, nous faisons référence à ses données «D», son prochain nœud qui sera une «tête», et le nœud précédent qui sera nul. L'instruction «If» a été utilisée pour vérifier que la valeur de la tête n'est pas nul. Si la tête n'est pas déjà «nul», nous devons faire de la tête précédente un nouveau nœud, et l'en-tête pointera vers le nouveau nœud.

La fonction Afterpush () est là pour insérer un nouveau nœud après notre nœud déjà fait. L'instruction «IF» vérifiera si le nœud précédent est égal à NULL ou non et affichez cela en utilisant le «cout». Un nouveau nœud a été formé et les données seront insérées dans «D». Le «prochain» du nouveau deviendra le prochain des précédents, et le prochain des précédents deviendra un nouveau nœud. Le précédent de New deviendra le précédent lui-même. Si le prochain nouveau n'est pas égal à NULL, nous ferons le prochain qui est également le plus proche du nouveau, un nouveau nœud.

Maintenant, nous utiliserons la fonction «endpush» pour insérer un nouveau nœud à la fin d'une liste liée. Le nouveau nœud a été créé et les données transmises par main () sont affectées à «D» et la prochaine nouvelle est nul. Nous avons stocké la tête temporairement. Le «IF» vérifiera si la liste liée est vide et rendra le nouveau nœud «tête». Le «while» traversera la liste liée si la liste liée n'est déjà pas vide. Comme la «température» est notre dernier nœud, nous avons attribué la température suivante à «Nouveau». Le précédent du nouveau est affecté à «Temp».

La méthode delete () utilise différentes instructions «if» pour échanger le prochain et le nœud de tête du nœud et de la tête. Enfin, la fonction «libre» est utilisée pour libérer la mémoire d'un del-node.

La fonction show () de ce programme est à nouveau utilisée pour imprimer la liste doublement liée.

La fonction main () commence à s'exécuter en initialisant le nœud de tête vers null. La fonction «endpush» est appelée pour insérer un nœud à la fin en passant «tête» et 5 comme données. FrontPush () est utilisé deux fois pour ajouter un nœud à l'avant de la liste liée. Après l'utilisation «endpush ()» à nouveau, nous avons utilisé deux fois «Afterpush ()». Les fonctions show () et «delete ()» sont utilisées les unes après les autres, tandis que la «supprimer» est utilisée pour supprimer chaque dernier nœud de la liste liée, et show () affiche que.

La compilation et l'exécution affiche la liste liée au début à terminer I.e., Après chaque suppression de nœud.

Conclusion

Cet article explique les exemples de code simples pour créer une liste doublement liée en C ++ tout en utilisant l'Ubuntu 20.04 Système Linux. Nous avons également examiné les moyens d'insérer un nœud au début et à la fin de la liste liée et insérer après un nœud déjà fait i.e., entre. La fonction de suppression était de supprimer chaque nœud à chaque fois de la liste liée.