Estructura Lista Enlazada
Estructura Lista Enlazada
Estructura Lista Enlazada
Facultad: Ingeniería
Escuela: Computación
Asignatura: Programación con Estructuras de Datos
Competencia
Materiales y Equipo
• Guía Número 3
• Computadora con programa Microsoft Visual C#.
Introducción Teórica
De esto podemos deducir que una lista (lista) es una secuencia de nodos en el que cada nodo esta
enlazado o conectado con el siguiente (por medio del puntero mencionado anteriormente). El primer
nodo de la lista se denomina cabeza de la lista y el último nodo cola de la lista. Este último nodo suele
tener su puntero igualado a NULL Para indicar que es el fin de la lista.
En las listas de acuerdo a quién apunte su cabeza y cola y al tipo de nodo que implementa (cuántos
punteros tiene) se dividen en cuatro grandes tipos:
Listas enlazadas (simplemente enlazadas)
Listas doblemente enlazadas
Listas circulares (simplemente circulares)
Listas doblemente circulares
PED104. Guía N°3 | Página 2
Las listas simplemente enlazadas, permiten recorrer la lista en un solo sentido y desde la cabeza hasta
la cola.
Las listas doblemente enlazadas, permiten el recorrido en dos direcciones, de la cabeza a la cola y de
la cola hacia la cabeza.
Las listas simplemente circulares, permiten el recorrido en una dirección pero al llegar al último nodo
(cola) este se encuentra comunicado o enlazado a la cabeza, haciendo un anillo o circulo si se
representa gráficamente.
Las listas doblemente circulares, permiten el recorrido en ambas direcciones y la cabeza y cola se
encuentran conectadas en ambas direcciones.
El dato que contenga un nodo puede ir desde un tipo de dato básico como un entero, decimal o carácter
hasta algo más complejo como una estructura completa. Los punteros son los que enlazan al nodo
con otros nodos exactamente iguales a él.
La lista enlazada es una estructura de datos dinámica cuyos nodos suelen ser normalmente registros y
que tienen un tamaño fijo. Ahora bien suelen llamarse estructuras dinámicas porque se crean y
destruyen según se vayan necesitando. De este modo se solicita o libera memoria en tiempo de
ejecución del programa.
Gráficamente una lista enlazada puede representarse de la siguiente forma:
Las operaciones típicas de la lista incluyen: Crear la lista, verificar si está vacía, insertar elementos,
eliminar elementos, mostrar elementos.
La lista no tiene ninguna restricción en cuanto a dónde puede eliminar o agregar nodos y es
precisamente esta característica lo que la hace la estructura más versátil.
PED104. Guía N°3 | Página 3
Procedimiento
2. Añada una clase nueva al proyecto, nómbrela lista y codifique lo siguiente para sus atributos y
constructor:
2.1 Siempre dentro de la clase lista para el método que inserta en la cola de la lista
PED104. Guía N°3 | Página 4
3. Una vez concluida la clase lista para poder utilizarla debemos crear los objetos pertinentes, es
por ello que iremos ahora a la clase Program y en el Main escribiremos:
5. Una vez que ha realizado esto agregue las siguientes líneas a su código en el Main
PED104. Guía N°3 | Página 7
Desarrollo de habilidades
Ejercicio No. 1
Modifique el ejemplo de forma haya un menú de opciones para acceder a los métodos que contiene la
clase.
a. Insertar al Frente
b. Insertar al Final
c. Insertar en una posición específica
d. Eliminar al Frente
e. Eliminar al Final
f. Mostrar lista
g. Salir
El menú deberá estar siempre disponible hasta que el usuario seleccione la opción g es decir salir de
la aplicación
Ejercicio No. 2
Modifique el método de insertar por posición para que en caso de que la posición seleccionada no
exista envíe un mensaje de alerta y que inserte al final (es decir que inserte en la cola).
Ejercicio No. 3
Agregue un método más a la clase lista, de forma que los datos se ingresen en forma ascendente, es
decir que se comparará con el primer valor que encuentra y si es menor se ingresa antes y sino sigue
hasta encontrar la ubicación que le corresponde. Haga la correspondiente prueba en el Main para
verificar su funcionamiento.
Ejercicio No. 4
Utilizando la clase dada, pase al entorno gráfico. De forma que los valores de los nodos ingresados se
reflejen en una herramienta como ListBox u otro y al momento de suprimirlos también se actualice y el
dato no aparezca más en el entorno. El diseño es totalmente libre.