Listas Enlazadas

9.
L
I
S
T
A
S
E
N
L
A
Z
A
D
A
S

### Definición 1:

Una lista enlazada o encadenada es una colección de elementos o nodos donde cada uno contiene datos y un enlace a otra liga.
Un nodo es una secuencia de caracteres en memoria dividida en campos de cualquier tipo. Un nodo siempre contiene la dirección de memoria del siguiente nodo de información si este existe. Un apuntador es la dirección de memoria de un nodo.
El campo liga que es de tipo puntero, es el que se usa para establecer la liga con el siguiente nodo en la lista. Si el nodo fuera el último este campo recibe el valor NULL.

### Definición 2:

Es una estructura de datos formada por bloques de información con un formato común enlazados entre sí mediante punteros.

### Definición 3:

Una lista enlazada es una colección lineal (es decir una secuencia) de objetos de una clase auto referenciada. Estos objetos se conocen como nodos y están conectados por enlaces de referencia; es por ello que se utiliza el término “lista enlazada”.
Un programa accede a la lista a través del primer nodo de la lista. El programa accede a cada nodo subsecuente a través del miembro de referencia de enlace almacenado en el nodo anterior. Por conveniencia la referencia de enlace del último nodo de una lista se establece en NULL para indicar el final de la lista.

## Ventajas:

*Los datos se almacenan de forma dinámica en una lista:
-El programa crea los nodos según sea necesario.
*Un nodo puede contener datos de cualquier tipo, incluyendo referencias a objetos de otras clases.
*Las pilas y las colas son versiones restringidas de las listas enlazadas.
*Pueden almacenarse listas de datos en arreglos pero las listas enlazadas son convenientes cuando el número de elementos es impredecible.

## Clasificación.

### -Listas simplemente enlazadas

Cada nodo o elemento contiene un único enlace que conecta ese nodo al siguiente nodo (sucesor). Es eficiente en recorrido directo.

### -Listas doblemente enlazadas

Cada nodo contiene dos enlaces, uno a su predecesor y otro a su sucesor. Es eficiente tanto en recorrido directo como inverso.

### -Listas circulares simplemente enlazadas

Una lista en la que el último elemento (cola) se enlaza con el primer elemento (cabeza) de tal forma que la lista puede ser recorrida en forma de anillo.

### -Listas circulares doblemente enlazadas

Una lista en la que el último elemento se enlaza al primero y viceversa. Se puede recorrer de forma circular de manera directa e inversa.

### Operaciones comunes

-Insertar elemento.
-Mostrar elementos.
-Buscar elementos.
-Eliminar elemento.

## Insertar elementos.

-Crear un nuevo nodo.
-Asignar al nuevo nodo el dato que contendrá.
-Crear dos nodos auxiliares y asignar a la lista el primero de ellos.
-Insertar el elemento a la lista.

## Mostrar elementos de la lista.

-Crear un nuevo nodo.
-Igualar ese nodo a la lista.
-Recorrer la lista de inicio a fin.

## Buscar elementos en la lista.

-Crear un nuevo nodo.
-Igualar ese nodo a la lista.
-Recorrer la lista.
-Determinar si el elemento existe o no en la lista.

## Eliminar un elemento.

-Preguntar si la lista está vacía.
-Crear un auxiliar para borrar y un auxiliar igualado a NULL
-Igualar el auxiliar al inicio de la lista.
-Recorrer la lista.
-Eliminar el elemento.

## REFERENCIAS BIBLIOGRAFICAS Y ELECTRONICAS

-C# como programar. Segunda edición
-Programación ATS https://www.youtube.com/channel/UC7QoKU6bj1QbXQuNIjan82Q
-Estructuras de datos “Apuntes” .-Anónimo
-Fundamentos de informática y programación.
-Listas lineales(circulares,doblemente enlazadas) recopilación-Msc Raúl H. Ruiz C.
-Estructuras dinámicas de datos en lenguaje C-Ismael Camarero: Revisión Msc Raúl H. Ruiz C.

## PROGRAMA LISTAS ENLAZADAS EN C#

### #PANTALLA PRINCIPAL

### PARTE #1 - CODIGO

### PARTE #2 - CODIGO

### PARTE #3 - CODIGO

### PARTE #4 - CODIGO

### PARTE #5 - CODIGO

# COMPLEMENTOS

Estructura de Datos-Listas Enlazadas