Comment inverser une liste liée en C

Comment inverser une liste liée en C
La liste liée a été définie comme un ensemble de nœuds de type structure qui contient des données. Ce guide montrera comment une liste liée peut être inversée dans le langage C à l'aide d'Ubuntu 20.04 Système. Alors, commençons par ajouter quelques exemples. L'utilisateur doit ouvrir la console terminale sur Ubuntu 20.04 Desktop pour travailler sur la langue C. Pour l'ouvrir, nous avons utilisé la commande de clé de raccourci «Ctrl + Alt + T». Une autre façon de le lancer sur votre bureau Ubuntu est via l'option d'activité sur le bureau.

Exemple 01

Au fur et à mesure que l'application Terminal est lancée, créez un nouveau fichier C. Nous devons utiliser une requête «Touch» la plus utilisée dans le terminal pour le faire, comme indiqué ci-dessous.

$ touch inverse.c

Maintenant, le fichier C a été créé, l'ouvrez avec n'importe quel éditeur déjà installé et configuré sur votre système Linux. Nous utilisons l'éditeur «Nano» pour ouvrir et modifier le fichier C.

$ Nano Reverse.c

Maintenant, le fichier a été affiché dans GNU Nano Editor. Nous avons d'abord inclus certaines bibliothèques pour rendre le code exécutable dans le terminal et par le compilateur. Un nœud de liste lié a été construit comme le type de structure consiste en une variable d'information de nœud et la création du nœud suivant. Une méthode «inverse» a été définie pour l'inversion d'une liste liée. Il construit le pointeur pour l'enregistrement d'adresse pour le nœud de nœud, de courant ou de tête précédent, et le nœud suivant. Bien que le nœud de tête soit nul, il est utilisé pour en faire le nœud suivant ou actuel. Cela a été fait en utilisant des pointeurs jusqu'à présent.

La fonction «push» a été créée pour pousser les données dans les nœuds. Il a créé un nouveau nœud et lui a attribué de la mémoire par la méthode «Malloc». Les données ont été attribuées à un nouveau nœud en passant des arguments dans les paramètres à l'aide de références de nœud de tête. La méthode Show () a été utilisée ici pour afficher les informations d'un utilisateur d'une fonction poussante dans les nœuds.

Nous avons défini la méthode principale pour l'exécution d'un code. Le nœud de départ a été défini comme nul. Après cela, nous avons poussé les valeurs dans le nœud de tête à l'aide du pointeur. Après cela, la méthode show () a été appelée ici pour afficher les messages. Après cela, la méthode inverse () a été appelée ici pour inverser la valeur d'une liste liée en liant le pointeur d'en-tête indiqué par le nœud. Encore une fois, la méthode show () a été appelée pour afficher la liste liée inverse.

Compilons notre code avec le compilateur GCC dans le terminal conformément à la commande indiquée. Aucune erreur de compilation n'a été trouvée jusqu'à présent. Le fichier a été exécuté après cela. Il affiche d'abord la liste liée d'origine, puis la liste liée inverse selon la sortie SNAP ci-dessous.

$ gcc inverse.c
$ ./un.dehors

Exemple 02

Notre premier exemple a indiqué la création d'une liste liée et l'ajout de données manuellement. Nous allons créer un lien et y ajouter des données au moment de l'exécution pour afficher et inverser la liste liée. Ouvrez à nouveau le même fichier à l'aide de l'éditeur «GNU Nano».

$ Nano Reverse.c

Les mêmes bibliothèques d'en-tête ont été incluses pendant que le nœud de type struct a été créé. Trois méthodes principales ont été définies. L'exécution a été initialisée à partir de la méthode principale (). Il construit un pointeur de nœud comme nul. La méthode de création a été appelée lors de la liaison du pointeur dans ses paramètres. La méthode show () a été affichée dans la liste liée originale. D'un autre côté, la méthode reverse () a été appelée pour inverser la liste liée. La liste liée inversée a été affichée après cela.

Après l'appel de la méthode de création (), le code ci-dessous sera exécuté. Deux pointeurs de type structure ont été faits avec 2 entiers; L'utilisateur ajoutera une valeur pour un nœud respectif. Cette valeur sera attribuée à son nœud respectif par un pointeur «température». L'utilisateur a été invité à continuer à ajouter des données ou à quitter en ajoutant 1 ou 0.

La méthode inverse a été là pour ajouter inversé les données d'une liste liée. La boucle while a été utilisée ici pour inverser la liste liée en utilisant ses pointeurs.

La méthode show () a été définie ici pour imprimer les données ajoutées à la liste liée.

La compilation et l'exécution ont été effectuées en utilisant les deux mêmes commandes. L'utilisateur entre dans le numéro de nœud et sa valeur respective. Après l'arrêt, la liste liée originale et inversée a été affichée à l'écran.

$ gcc inverse.c
$ ./un.dehors

Conclusion

Cet article est le meilleur dans la démonstration de l'inversion de la liste liée dans la langue C. L'inversion de la liste liée contient également la création d'une liste liée et la poussée des données dans les nœuds. En fin de compte, les méthodes d'affichage ont été utilisées pour afficher le contenu dans l'ordre d'origine et inverse.