Вы находитесь на странице: 1из 4

Crear una lista enlazada

Enunciado
Dado un conjunto de elementos: 5, 8, 2, 9, 6; crear una estructura que permita enlazar los
elementos de la siguiente manera.

5 8 2 9 6

Solución (Programa desarrollado en Dev C++).

Ing.  Manuel  Sucunuta  –  UTPL  –  Escuela  de  Ciencias  de  la  Computación   Página  1  

 
1. De acuerdo al gráfico para cada elemento se necesitan de dos campos, uno para
almacenar el valor (5, 8, …) y otro para almacenar la dirección del siguiente elementos
por lo que es necesario definir la estructura tipo puntero que contendrá dos campos, la
definición sería:

En ésta estructura en Dato se guardará el valor y en Enlace la dirección del siguiente


elemento. Este tipo de dato se denomina Nodo.

2. Es necesario que una variable apuntador que siempre apunte al primer elemento de la
lista, y otra variable permita recorrer la lista para ir enlazado. En la línea 13 se define
estas dos variables. Además en la línea 14 se define una variable contador para
controlar el ingreso de la cantidad de términos.
3. En la línea 15 se crea el primer elemento de la lista y se asigna al puntero a Cabeza.
CrearNodo() es una función que permite crear el nodo y que se la llama cada vez que
se desea ingresar un nuevo elemento a la lista. Quedando la lista de la siguiente
forma:

Cabeza 5
4. Luego en la línea 16 se asigna a Siguiente la dirección de memoria creada, esto para
recorrer la lista. Quedando de la siguiente forma:

Cabeza 5
Siguiente
Considere que la función CrearNodo() retorna la dirección del puntero creado por
tanto: en el campo Dato se encuentra el valor 5, y en el campo Enlace por el momento
el valor NULL, este valor cambiará cuando se cree un nuevo elemento.
5. Desde la línea 17 a la 20 está el bucle for que se ejecuta 4 veces, y sirve para ingresar
desde el segundo hasta el quinto elemento de la lista.

Ing.  Manuel  Sucunuta  –  UTPL  –  Escuela  de  Ciencias  de  la  Computación   Página  2  

 
6. Con la instrucción de la línea 18 se
realiza el enlace con el siguiente elemento. Considere que en el paso 4 el puntero
Siguiente apunta al primer elemento de la lista y a la primera interacción del for, se
enlaza el segundo elemento de la lista, por cuanto la función CrearNodo(i) retorna una
dirección de memoria que se almacena en el campo Enlace. Quedando la lista de la
siguiente forma.

Cabeza 5 8
Siguiente
7. Con la instrucción de la línea 19 el
puntero Enlace apunta elemento insertado, esto con el fin de enlazar con el siguiente
elemento. Tome en cuenta que el puntero Cabeza siempre apuntará al primer
elemento de la lista.

Cabeza 5 8
Siguiente
Para la segunda interacción, la lista es:

Cabeza 5 8 2
Siguiente
Y así el proceso continúa hasta el último elemento.
8. En la línea 22 se invoca al procedimiento Presentar(Cabeza) y se envía como
parámetro la dirección del primer elemento de la lista a través del apuntador Cabeza.

FUNCION CREAR NODO

9. A partir de la línea 29 a 38 se desarrolla la función CrearNodo el mismo que se lo


declara del tipo Nodo, ya que retorna un valor del punto puntero. El parámetro que se
recibe en la variable y solamente sirve para presentar el digito a ingresar.
10. En la línea 30 se define el puntero que servirá para crear cada término de la lista. La
variable valor sirve para ingresar el número desde teclado y se lo realiza en la línea
33.
11. En la línea 34 se reserva la memoria necesaria para la variable tipo puntero.
12. En la línea 35 con la sentencia se asigna el valor al campo
Dato del puntero.
13. En la línea 36 con la sentencia al campo Enlace se asigna
el valor NULL, por cuanto siempre que se cree un nuevo nodo se debe inicializar el
campo a nulo, por cuanto el último elemento de la lista siempre debe tener un final.
Cada vez que se crea un nuevo elemento se asume que es el último de la lista.
14. En la línea 37 se retorna el puntero a través de la función al programa principal.

Ing.  Manuel  Sucunuta  –  UTPL  –  Escuela  de  Ciencias  de  la  Computación   Página  3  

 
FUNCION PRESENTAR NODO
15. A partir de la línea 41 a la 46 se presenta el procedimiento para presentar cada
elemento de la lista. Se recibe como parámetro en puntero p cuya dirección apunta al
primer elemento de la lista.
16. En la línea 42 se ejecuta el ciclo repetitivo cuya condición es verdadera mientras el
punto p no apunte a NULL, el último elemento de la lista. Con la sentencia
el puntero p recorrerá cada elemento de la lista.

Ing.  Manuel  Sucunuta  –  UTPL  –  Escuela  de  Ciencias  de  la  Computación   Página  4  

Вам также может понравиться