Está en la página 1de 6

Gilberto de Jesús Córdova Mendoza DSM402

Estructura de Datos 08/10/2021

NOMBRE: Gilberto de Jesús Córdova Mendoza


Materia: Estructura de Datos

Grado y grupo: DSM402


Carrera: TSU Sistemas de la información
Especialidad: Desarrollo de Software Multiplataforma
Universidad: Universidad Tecnológica de León
ACTIVIDAD: Practica 8.2 – Estructura Pilas
Gilberto de Jesús Córdova Mendoza DSM402
Estructura de Datos 08/10/2021
LISTAS ENLAZADAS

INTRODUCCION

BUSQUEDA EN LISTAS ENLAZADAS


La búsqueda de un elemento en un Lisa Enlazada se ejecuta cuando esta recorre toda la
lista, hasta encontrar el nodo indicado. El algoritmo cuando localiza el elemento este
mandara la referencia, en caso contrario mandara un null, también puede arrojar valores
booleanos, que nos indicaran si existe el elemento o si no existe.

Para ello ocuparemos la función buscarLista, que utiliza la referencia índice, que recorre la
Lista, hasta localizar el valor, cuando esta encuentra el valor, finaliza el recorrido, en caso
contrario este avanzara hasta terminar la lista, ya que avanzara de nodo a nodo, cuando
esto sucede, índice adquiere el valor null, y se devuelve la referencia que este contiene.

Cabe aclarar que para hacer las comparaciones estas funciones usan el operado == cuando
son valores simples como (enteros o double), pero lo más común es usar objetos para lo
que se ocupa la función equals.

ELIMINAR UN NODO DE UNA LISTA


Para poder llevar a cabo una eliminación se deben de seguir una serie de pasos ya que se
tiene que desocupar el espacio en memoria del nodo para ello.

1- Primero se localiza el Nodo (utiliza su propio bucle de búsqueda no ocupa de la


función buscar) que contiene el dato, dándonos su dirección y también la del nodo
anterior.
2- El enlace del noto anterior que apunta al siguiente nodo del cual se elimina
3- En caso de que le nodo a eliminar sea el primero, el nodo que le sigue adquiere la
dará su dirección para ser el primero.
4- Por ultimo la memoria del nodo se libera y el sistema deja de referenciarlo.

LISTA ORDENADA
Gilberto de Jesús Córdova Mendoza DSM402
Estructura de Datos 08/10/2021
Los elementos de una lista tienen la propiedad de estar ordenados, de forma línea según
las posiciones que ocupan, para entender mejor esto, se dice de n(i) procede a n(i+1), ósea
que avanzara de 1 en 1 según los elementos que se vayan agregando.

Pero que pasa cuando agregamos un valor y queremos que nuestra lista siga ordenada,
para ello nuestra lista hará lo siguiente, ubicara el primer numero que sea mayor a nuestro
nuevo valor, y ubicara el ultimo numero que sea menor al nuevo valor, después de esto
adquirirá el índice del numero mayor, recorriendo al número mayor un índice para atrás,
para ello se usan los siguientes operadores de comprobación (<,>,==) y se lleva a cabo con
el método insertarOrden() que ordenara los datos conforme se vallan ingresando.

LISTA DOBLEMENTE ENLAZADA

Las listas doblemente enlazadas tienen la peculiaridad, de tener dos referencias, una que
apunta hacia el siguiente elemento, y una que apunta al elemento anterior además de
contener el campo referente a su dato, las operaciones de este tipo de listas serán muy
similares a las de una lista común.

INSERTAR UN ELEMNTO EN UNA LISTA DOBLEMENTE ENLAZADA


Para poder insertar elementos en este tipo de listas, dependerá de donde queramos
localizar los datos, para ello contamos con varios algoritmos, En la cabeza(primer elemento
de la lista), Al Final(el último elemento de la lista), Antes de un elemento, o después de un
elemento.
Gilberto de Jesús Córdova Mendoza DSM402
Estructura de Datos 08/10/2021
INSERTAR UN NUEVO ELEMENTO EN LA CABEZA
1- Crear un nodo con el nuevo elemento y asignar su referencia a la variable nuevo.
2- Hacer que el campo enlace adelante del nuevo nodo apunte a la cabeza (primer
nodo) de la lista original, y que el campo enlace atrás del nodo cabeza apunte al
nuevo nodo.
3- Hacer que cabeza apunte al nuevo nodo que se ha creado

INSERTAR DESPUES DE UN NODO


1- Crear un nodo con el nuevo elemento y asignar su referencia a la variable
nuevo.
2- Hacer que el enlace adelante del nuevo nodo apunte al nodo siguiente de n (o bien
a null si n es el último nodo). El enlace atrás del nodo siguiente a n (si n no es el
último nodo) tiene que apuntar a nuevo
3- Hacer que el enlace adelante del nodo n apunte al nuevo nodo. A su vez, el enlace
atrás del nuevo nodo debe de apuntar a n

Para realizar este tipo de inserciones contamos con el método insertarDespues() que ya
cuenta con la lógica correspondiente.

ELIMINAR UN ELEMENTO DE UNA LISTA OBLEMENTE ENLAZADA


Para poder llevar acaba esta acción debemos tener en cuenta el enlace de los dos nodos
y seguir los siguientes pasos:

1- Búsqueda del nodo que contiene el dato.


2- La referencia adelante del nodo anterior tiene que apuntar a la referencia adelante
del nodo a eliminar (si no es el nodo cabecero)
3- La referencia atrás del nodo siguiente a borrar tiene que apuntar a la referencia
atrás del nodo a eliminar (si no es el último nodo)
4- Si el nodo que se elimina es el primero, cabeza, se modifica cabeza para que
tenga la dirección del nodo siguiente.
5- La memoria ocupada por el nodo es liberada automáticamente

LISTAS CIRCULARES
La descripción simple de estos tipos de lista seria, que son listas que no poseen un inicio ni
un fin, pero es conveniente tener un nodo por el cual podremos acceder a la lista. Las
operaciones en este tipo de listas son similares a las lineales , este tipo de listas nos
permiten construir el TAD listaCircular y su funcionalidad es la siguiente.

1- Inicialización o creación.
2- Inserción de elementos en una lista circular
3- Eliminación de elementos de una lista circular
Gilberto de Jesús Córdova Mendoza DSM402
Estructura de Datos 08/10/2021
4- Búsqueda de elementos de una lista circular.
5- Recorrido de cada uno de los nodos de una lista circular.
6- Verificación de lista vacía.

Este tipo de listas se pueden hacer con enlaces simples o enlaces dobles, este tipo de lista
a diferencia de las nos circulares, nunca contara con un elemento null, si no que cuando
termine, esta apuntara al primer elemento para seguir su ciclo infinito.

INSERTAR UN ELEMENTO EN UNA LISTA CIRCULAR


La posición de inserción puede variar. Consideramos que se hace como nodo
anterior al del nodo de acceso a la lista lc, y que lc tiene la dirección del último nodo
insertado.

ELIMINAR UN ELEMENTO EN UNA LISTA CIRCULAR


La eliminación de los elementos es similar a la utilizada en la lista lineal siguiendo los
siguientes pasos:

1- Búsqueda del nodo que contiene el dato.


2- Se enlaza el nodo anterior con el siguiente.
3- En caso de que el nodo a eliminar sea por el que se accede a la lista, lc, se
modifica lc para que tenga la dirección del nodo anterior.
4- Por último, el sistema libera la memoria ocupada por el nodo al anular la
referencia.

Para implementar el método debemos contar que la lista circular consta de un solo nodo,
ya que si lo eliminamos la lista quedara vacía.

El método recorre la lista buscando el nodo con el dato a eliminar, utiliza un puntero al nodo
anterior para que cuando se encuentre el nodo se enlace con el siguiente. Se accede al
dato con la sentencia actual. enlace. dato; éste permite, si coincide con el dato a eliminar,
tener en actual el nodo anterior. Después del bucle es necesario volver a preguntar por el
Gilberto de Jesús Córdova Mendoza DSM402
Estructura de Datos 08/10/2021
campo dato, ya que no se comparó el nodo de acceso a la lista, lc, y el bucle puede terminar
sin encontrar el nodo.

También podría gustarte