Este documento presenta información sobre listas enlazadas simples. Explica las características y operaciones básicas de listas como inserción, eliminación y recorrido de elementos. También incluye ejemplos de implementación de listas usando arreglos en Java. Finalmente, propone una dinámica grupal para representar gráficamente las operaciones en listas enlazadas.
2. Las guerras seguirán mientras el color de la piel
siga siendo más importante que el de los ojos
(Bob Marley).
3. Objetivo
1. Adquirir los conceptos
básicos relacionados con
las EDD
2. Reconocer las
características de las
EDD
● 1.1 Listas Simples:
Operaciones de
inserción,recorrido,
actualización y eliminación
Contenido
4. 1.1 Listas Simples: Operaciones
de inserción,recorrido,
actualización y eliminación
5. DINAMICA: ENLAZADOS 1/3
● Condiciones:
■ Equipos de varias personas
■ Designar un capitán
■ Cada persona es un elemento relacionado al tema
■ Cada persona define sus características propias
■ Cada actividad se realiza una persona a la vez
■ Cada persona se enlaza por los brazos a otra
persona del equipo
6. DINAMICA: ENLAZADOS 2/3
● Actividades:
1. Dar el nombre del equipo
2. Agregar un elemento al grupo
■ Al final, Al inicio, Al medio (p valida)
■ Posición 3.5, posición 10000 (p no valida)
3. Quitar un elemento
■ Posición 2, 1 (p válida)
■ Posición 38 (p > # elementos)
4. Buscar un elemento
■ Por posición
7. DINAMICA: ENLAZADOS 3/3
● Informe: Detallar cada actividad realizada
○ Describa lo realizado paso a paso
○ Describa casos especiales
● Actividades realizadas
○ Agregar un elemento
○ Quitar un elemento
○ Buscar elemento
○ Nombrar elementos
● Actividades NUEVAS
8. DINAMICA: ENLAZADOS
● CONCLUSIONES
○ Enlazados representa el TDA LISTA
○ Los elementos son los OBJETOS
○ Las características son las VARIABLES
○ Las actividades son los METODOS
○ El detalle de las actividades es el ALGORITMO, que implementa el método.
10. ○ DEFINICION:
■ Es una estructura dinámica de elementos
■ Permite insertar y borrar elementos en cualquier posición, uno a la
vez
○ MATEMATICAMENTE
■ Lista es una secuencia de cero o más elementos de un mismo tipo.
■ A1, A2, A3, A4, ........., An-1, An
■ A1 Primer elemento, An Ultimo elemento
■ n Número de elementos (si n=0 Lista VACIA)
TDA: LISTA definición
A1 A2 A3 An-1 An.......
11. ● CARACTERISTICAS
○ ORDEN : son linealmente ordenadas, es decir el
elemento Ai es antecedido por Ai-1 y seguido por Ai+1
○ INICIO: A1 es el primer elemento de la lista excepto si
es Lista nula
○ FIN: An es el elemento final de la lista, excepto si es
Lista nula
○ Una lista NO puede tener espacios RESERVADOS
BLANCOS
○ Inserción y borrado se puede hacer en cualquier
posición de la lista, da mayor FLEXIBILIDAD
LISTAS - Características
12. LISTAS : operaciones básicas
● Nomenclatura, sea:
● L = Nombre de Lista,
● e = elemento,
● p = posición en lista
13. Operación básica - Makenull
○ MAKENULL (L)
■ Crea la lista L vacía
■ Retorna posición de lista L
■ Si L existe y tiene elementos, borra la lista previa confirmación
del usuario
○ Consideraciones:
■ La implementación depende de la facilidad del lenguaje
empleada (arreglos, referencias, …).
14. Operación básica - Insert
○ INSERT (L, e, p)
■ Insertar elemento e en la posición p de lista L
■ Verificar:
● L existe?
● p es válido?
● e es elemento permitido?
■ La posición determina el caso de inserción
● Insertar al inicio, final o en medio.
● Implica desplazar los elementos desde p a p+1 hasta n a
n+1 (si utiliza arreglos).
15. Operación básica - Delete
○ DELETE (p, L)
■ Borra el elemento de la posición p de la lista L
■ Verificar:
● L existe?
● p es posición válida?
■ El resultado es lista L con un elemento menos
■ Lista L no cambia, si p es fuera de rango de L.
■ Mensaje de confirmación de borrado al usuario.
16. Operación básica - Print
○ PRINT (L)
■ Imprime los elementos de la lista L en orden de ocurrencia,
a partir del inicio
■ Verificar:
● L existe?
■ Si L no existe, mensaje a usuario
■ Si L existe y no tiene elementos, enviar mensaje “Lista L
vacía” a usuario
■ Imprimir el contenido del primer elemento a último elemento
de lista L, adicionando la posición relativa.
17. Operación básica - Locate
○ LOCATE (L, e)
■ Localiza el elemento e en la lista L
■ Verificar:
● L existe?
● e es elemento válido de lista?
■ Retorna la posición de la primera ocurrencia de elemento e
en la lista L.
■ Si no existe elemento e en lista L, devuelve mensaje “e no
encontrado en L” al usuario.
18. Operación básica - Retrieve
○ RETRIEVE (L, p)
■ Retorna el elemento e de la posición p de la lista L
■ Verificar:
● L existe?
● p es posición válido de lista?
○ Si posición p no es válida, enviar mensaje a
usuario respectivo.
■ Devuelve el elemento e de la posición p.
19. Operación básica - First
○ FIRST (L)
■ Retorna el primer elemento e de la lista L
■ Verificar:
● L existe?
● Sí L no existe, enviar mensaje a usuario.
■ Verificar:
● L es vacía?
● Si L es vacía, enviar mensaje a usuario.
20. Operación básica - End
○ END (L)
■ Retorna el último elemento e de la lista L
■ Verificar:
● L existe?
● Sí L no existe, enviar mensaje a usuario.
■ Verificar:
● L es vacía?
● Si L es vacía, enviar mensaje a usuario.
21. Operación básica - Next
○ NEXT (L, p)
■ Retorna el elemento e siguiente a la posición p de la lista
L.
■ Verificar:
● L existe? Sí L no existe, enviar mensaje a usuario.
● L es vacía? Sí L es vacía, enviar mensaje a usuario
● p es posición válida? Sí p no válida enviar mensaje
a usuario.
■ Sí p = n-1 entonces devuelve END (L)
■ Sí p > n-1, enviar mensaje posición fuera de rango.
22. Operación básica - Previous
○ PREVIOUS (L, p)
■ Retorna el elemento e anterior a la posición p de la lista L.
■ Verificar:
● L existe? Sí L no existe, enviar mensaje a usuario.
● L es vacía? Sí L es vacía, enviar mensaje a usuario
● p es posición válida? Sí p no válida enviar mensaje a
usuario.
■ Sí p = 2 entonces devuelve FIRST (L)
■ Sí p = 1, enviar mensaje posición fuera de rango.
23. LISTAS:
Implementación en Java
○ Java permite implementar el tipo de dato abstracto LISTA mediante:
■ Arreglos
■ Referencias
■ Cursores
24. ○ CONSIDERACIONES GENERALES
■ Definir un arreglo por cada lista.
■ La relación que existe entre posición p e índice i del
arreglo es: p = i + 1
■ Índice y posición son valores enteros > o = a cero (0)
■ El arreglo debe inicializarse con valores predefinidos
■ El arreglo existe independiente de si existe la lista o no.
■ El arreglo tiene un tamaño máximo, que puede ser
desbordado si existe mayor número de elementos.
LISTAS utilizando ARREGLOS
25. ○ CONSIDERACIONES DE METODOS
■ Makenull(L) inicializa el arreglo y las variables auxiliares.
■ Insert(L, p, e) desplaza los elementos posteriores a p
para permitir el ingreso de e. Considerar overflow
■ Delete(L, p) comprime los elementos posteriores a p.
■ Print(L) se hace desde índice 0 hasta encontrar valor
predefinido de inicialización; o, hasta el último índice
ocupado.
■ First (L) es el elemento del índice 0
LISTAS utilizando arreglos
27. ○ Ejemplo de implementación:
■ ListaA.java
● Implementación de los métodos básicos de listas utilizando
arreglo.
■ ListaAPrincipal.java
● Menú de interacción con el usuario para que realice los
métodos de listas.
○ Ejecución de clase ListaAPrincipal
■ Considerar validaciones
Implementación LISTAS con arreglos