Cómo revertir una lista vinculada en C

Cómo revertir una lista vinculada en C
La lista vinculada se ha definido como un conjunto de nodos tipo estructura que contiene algunos datos. Esta guía mostrará cómo se puede revertir una lista vinculada en el lenguaje C usando Ubuntu 20.04 sistema. Entonces, comencemos agregando algunos ejemplos. El usuario necesita abrir la consola terminal en Ubuntu 20.04 escritorio para trabajar en el idioma C. Para abrirlo, hemos usado el comando de teclas de acceso directo "Ctrl+Alt+T". Otra forma de iniciarlo en su escritorio de Ubuntu es a través de la opción de actividad en el escritorio.

Ejemplo 01

A medida que se inicia la aplicación Terminal, cree un nuevo archivo C. Tenemos que utilizar una consulta de "tacto" más utilizada en la terminal para hacerlo, como se muestra a continuación.

$ touch rever.C

Ahora se ha creado el archivo C, ábralo con cualquier editor ya instalado y configurado en su sistema Linux. Hemos estado utilizando el editor "nano" para abrir y editar el archivo C.

$ nano reverso.C

Ahora el archivo se ha mostrado en el editor de GNU Nano. Primero hemos incluido algunas bibliotecas para hacer que el código se ejecute en la terminal y por el compilador. Se ha construido un nodo de lista vinculado a partir del tipo de estructura consistente en la variable de información del nodo y la creación del siguiente nodo. Se ha definido un método "reverso" para revertir una lista vinculada. Construye el puntero para el ahorro de la dirección para el nodo anterior, actual o nodo heal, y el siguiente nodo. Mientras que el nodo de la cabeza es nulo, se usa para convertirlo en el siguiente o nodo actual. Esto se ha hecho usando punteros hasta ahora.

La función "Push" se ha creado para impulsar los datos a los nodos. Creó un nuevo nodo y le asignó algo de memoria mediante el método "malloc". Los datos se han asignado a un nuevo nodo pasando argumentos en parámetros utilizando referencias de nodo principal. El método show () se ha utilizado aquí para mostrar la información de un usuario de una función de empuje en los nodos.

Hemos definido el método principal para la ejecución de un código. El nodo inicial se ha definido como nulo. Después de eso, hemos presionado los valores dentro del nodo de cabeza usando el puntero. Después de eso, se ha llamado al método show () aquí para mostrar los mensajes. Después de eso, se ha llamado al método reverse () aquí para revertir el valor de una lista vinculada al unir el puntero del encabezado indicado por el nodo. Nuevamente, se ha llamado al método show () para mostrar la lista inversa inversa.

Compilaron nuestro código con el compilador GCC en el terminal según el comando indicado. No se han encontrado errores de compilación hasta ahora. El archivo fue ejecutado después de eso. Muestra primero la lista vinculada original, luego la lista reversa vinculada según la salida SNAP a continuación.

$ GCC reverso.C
ps ./a.afuera

Ejemplo 02

Nuestro primer ejemplo indicó la creación de una lista vinculada y agregó datos manualmente en ella. Crearemos un enlace y agregaremos datos en el momento de ejecución para mostrar y revertir la lista vinculada. Abra el mismo archivo una vez más usando el editor "GNU Nano".

$ nano reverso.C

Se han incluido las mismas bibliotecas de encabezado mientras se ha creado el nodo de tipo struct. Se han definido tres métodos principales. La ejecución se ha inicializado desde el método main (). Construye un puntero de nodo como nulo. El método Crear se ha llamado mientras une el puntero dentro de sus parámetros. El método show () se ha mostrado en la lista vinculada original. Por otro lado, se ha llamado al método reverse () para revertir la lista vinculada. La lista vinculada invertida se ha mostrado después de eso.

Después de la llamada de creación () método, el siguiente código se ejecutará. Se han realizado dos punteros de tipo estructura junto con 2 enteros; El usuario agregará un valor para un nodo respectivo. Este valor será asignado a su nodo respectivo por un puntero "Temp". Se le ha pedido al usuario que continúe agregando datos o renunciando agregando 1 o 0.

El método inverso ha estado aquí para agregar revertir los datos de una lista vinculada. El bucle mientras se ha utilizado aquí para revertir la lista vinculada usando sus punteros.

El método show () se ha definido aquí para imprimir los datos agregados a la lista vinculada.

La compilación y la ejecución se han realizado utilizando los mismos dos comandos. El usuario ingresa al número de nodo y su valor respectivo. Después de dejar de fumar, la lista vinculada original e invertida se ha mostrado en la pantalla.

$ GCC reverso.C
ps ./a.afuera

Conclusión

Este artículo es mejor en la demostración de revertir la lista vinculada en el idioma C. La reversión de la lista vinculada también contiene la creación de una lista vinculada y presionando los datos en nodos. Al final, los métodos de visualización se han utilizado para mostrar los contenidos en orden original e inverso.