top of page
Foto del escritorGerardo Acevedo Arzola

Listas Enlazadas Circulares

Actualizado: 11 nov 2018

Crear estructura de lista enlazada circular | Insertar elementos en la lista | Imprimir los elementos de la lista.


 

¡Hola! En este vídeo aprenderemos a crear Listas Circulares, a partir de las funciones:

* Insertar datos en la lista

* Imprimir los elementos de la lista.

Listas Circulares


En la cabecera de nuestro programa vamos a llamar las librerias stdio.h y stdlib.h.

Antes de declarar nuestro nuevo tipo de dato,en la cabecera del programa vamos a escribir #define Nodo struct nodo, esto quiere decir que cada vez que escribamos la palabra “Nodo” nos estamos refiriendo al nuevo tipo de dato que es struct nodo.

Ahora podemos declarar nuestra estructura simplemente poniendo Nodo, abrimos corchetes nuestro nodo va a estar compuesto de un tipo de dato a almacenar y un nodo apuntador al siguiente dato (Nodo* siguiente).

Declaramos un nodo apuntador que nos ayudará a señalar el inicio de lista,en un inicio, debe apuntar a NULL.

● Función insertarNodo

Vamos a declarar una función de tipo void que recibirá como parámetro el tipo de dato que estemos guardando. A continuación declaramos un nodo apuntador donde se almacenará nuestro dato,para ello primero debemos reservar el espacio en memoria para un nuevo dato de tipo Nodo con ayuda de la función malloc de la librería stdlib.h, por lo tanto este apuntador lo igualamos a (Nodo*)malloc(sizeof(Nodo)).

Teniendo nuestro nuevo elemento Nodo, en su parte de dato le asignamos el dato nuevo a almacenar (parámetro de nuestra función) y en su parte de siguiente (Nodo* siguiente) apuntará en un inicio a NULL.

Declaramos un if con la condición apuntador inicio es igual a NULL,en caso de ser verdadera significa que la lista está vacía, por ello el apuntador a inicio es igual al nodo nuevo e inicio en su parte de siguiente es igual a inicio. Sino está vacía la lista, entonces declaramos otro Nodo apuntador auxiliar que es igual al apuntador inicio,abrimos un while con la condición: auxiliar en su parte de siguiente sea diferente de inicio esto para poder ingresar el dato al final de la lista, dentro del while ponemos que el apuntador auxiliar es igual a auxiliar en su parte de siguiente y se cierra el while.

Ya situados al final de la lista ligamos el nuevo nodo haciendo que auxiliar en su parte de siguiente sea igual a nuevo y nuevo en su parte de siguiente sea igual a inicio.Cerramos if y la función.

● Función imprimirLista

Declaramos un if con la condición: apuntador inicio es diferente de NULL,esto con el motivo de que si el apuntador inicio es NULL significa que la lista está vacia y por consiguiente no hay elementos que imprimir.

Dentro del if, declaramos un Nodo apuntador auxiliar que va a hacer igual al apuntador inicio, después abrimos un do-while, dentro de este imprimimos auxiliar en su parte de dato y auxiliar va a ser auxiliar en su parte de siguiente.Cerramos do - while con la condición: auxiliar sea distinto a inicio apuntador, cerramos if y función.


Puedes encontrar el código fuente de este programa en el siguiente enlace:





Recuerden que siempre nos pueden contactar vía correo electrónico.


158 visualizaciones0 comentarios

Entradas recientes

Ver todo

Comments


bottom of page