Este documento explica las listas de enlace simple lineal no ordenadas como una estructura de datos dinámica. Describe los conceptos clave de nodo, apuntador y lista, y explica las operaciones básicas de una lista como verificar si está vacía, insertar un nodo, buscar un nodo y eliminar un nodo. El documento también incluye un ejemplo de diagrama de clases UML para representar una lista de estudiantes.
1. Listas de Enlace Simple Lineal
No Ordenada
Guía Nº 3
Estructura de Datos
1
GUÍA Nº 3 MANEJO DE DATOS
IDENTIFICACIÓN DE LA ASIGNATURA
Facultad de Estudios a Distancia - FESAD ESCUELA: Ciencias Tecnológicas
Programa: Tecnólogo en programación de Sistemas Informáticos
Asignatura/Unidad: Programación l
Nombre de la actividad: Almacenamiento de datos
Objetivo de la temática: Crear y manipular estructuras dinámicas de datos.
Docente-Tutor: Ing. Josué Nicolás Pinzón Villamil
Contenido
Objetivos Específicos...................................................................................................................... 2
¿Qué es estructura de datos?......................................................................................................... 2
Tipos de estructura de datos.......................................................................................................... 2
Estructuras de datos estáticas.................................................................................................... 2
Estructura de datos dinámica..................................................................................................... 3
Estructura de datos dinámica lineal................................................................................................ 3
Listas de enlace simple lineal no ordenada................................................................................. 5
Definición de una Lista ........................................................................................................... 5
Operaciones en la lista ........................................................................................................... 7
Verificar si es vacía ............................................................................................................. 8
Insertar un nodo................................................................................................................. 8
Buscar un nodo .................................................................................................................. 9
Eliminar un nodo................................................................................................................ 9
Ejercicio....................................................................................................................................... 10
Bibliografía .................................................................................................................................. 11
2. Listas de Enlace Simple Lineal
No Ordenada
Guía Nº 3
Estructura de Datos
2
Estructura de Datos
Objetivos Específicos
• Diseñar y codificar listas de enlace simple.
• Utilizar las listas como medio de almacenamiento de datos en ejecución.
• Crear y referenciar los nodos de una lista.
¿Qué es estructura de datos?
Una estructura de datos es un conjunto de objetos que se relacionan entre si y se pueden operar
como un todo. Esta unión de objetos permite almacenar y organizar de alguna forma los datos1.
Tipos de estructura de datos
Las estructuras de datos se dividen en dos, de acuerdo a su tamaño:
• Estática
• Dinámica
Estructuras de datos estáticas
Las estructuras estáticas se caracterizan por tener un tamaño fijo de los objetos que la
componen, por lo general se define su tamaño en la inicialización de la estructura.
1
Mamani Torres, Cristian Denis. Estructuras de Datos en Java.pdf pág. 88
3. Listas de Enlace Simple Lineal
No Ordenada
Guía Nº 3
Estructura de Datos
3
Este tipo de estructuras se utiliza cuando se conoce el total de los elementos que va a contener
la estructura, con el fin de aprovechar la memoria estática del equipo, un ejemplo de esto sería
el nombre y el numero de meses del año, ya que estos datos no cambian en el transcurso de la
ejecución y siempre son los mismos.
Estructura de datos dinámica
Las estructuras dinámicas no tienen un tamaño fijo de objetos, por consiguiente utilizan la
memoria dinámica necesaria en la ejecución, un ejemplo de esto ocurre con una lista de
artículos de compra, nunca se sabe cuántos artículos se van a comprar y estos siempre cambian
de acuerdo al cliente. Estas estructuras crecen y se reducen en tiempo de ejecución.
Las estructuras dinámicas se dividen en dos:
• Lineales
• No lineales2
Estructura de datos dinámica lineal
La estructura dinámica lineal no tiene tamaño fijo y dispone los objetos de forma secuencial.
Dentro de este tipo de estructura se encuentran definidos tres tipos:
• Listas
• Pilas3
• Colas4
Las partes de una estructura de datos son: información a almacenar, elemento que contiene la
información y estructura que puede ser una lista, cola o pila, estos deben estar representados
en una clase cada uno.
Para un mejor entendimiento del tema es necesario indicar a que se hace referencia con los
términos apuntador, clase autorreferenciada, nodo y enlace de referencia.
Un apuntador es referencia a una dirección de memoria única5.
Una clase autorreferenciada es una clase que contiene una variable de instancia que hace
referencia a otro objeto del mismo tipo de la clase6.
2
Este tipo de estructura dinámica será mencionada más adelante en el curso.
3
Este tipo de estructura lineal se trata en el tema siguiente del curso.
4
Este tipo de estructura lineal se menciona en el siguiente documento.
5
http://iteso.mx/~pcalderon/Pract14.htm
6
http://www.programacion.com/articulo/estructuras_de_datos_y_algoritmos_en_java_309/4
4. Listas de Enlace Simple Lineal
No Ordenada
Guía Nº 3
Estructura de Datos
4
Ilustración 1 Diagrama nodo UML
Un nodo es un objeto creado por la clase autorreferenciada7 que tiene dos campos uno para la
información y otro para la referencia.
Un enlace de referencia es un campo (variable de instancia) cuyo tipo de referencia es el
nombre de la clase8, es decir un apuntador que contiene una dirección de memoria.
Las listas se encuentran divididas de tres características globales, las cuales se pueden conjugar
para conformar una lista; estas características son:
CARACTERÍSTICA
TIPO DE
LISTA
Numero de referencias entre Nodos
Simple
El nodo tiene una referencia al nodo
siguiente.
Doble
El nodo tiene dos referencias una al
nodo anterior y otra al nodo siguiente.
Conexión Final de Nodos
Lineal No tiene conexión final.
Circular El nodo final conecta al primero.
Forma de ingresar la Información
No
Ordenada
La información ingresa en el primer
lugar o en el último sin importar su
contenido.
Ordenada
La información ingresa ordenada con
base en un contenido específico de la
información.
7
http://www.programacion.com/articulo/estructuras_de_datos_y_algoritmos_en_java_309/4
8
http://www.programacion.com/articulo/estructuras_de_datos_y_algoritmos_en_java_309/4
class negocio
NodoSimple
- estudiante: Estudiante
- siguienteNodo: NodoSimple
+ NodoSimple()
-siguienteNodo
5. Listas de Enlace Simple Lineal
No Ordenada
Guía Nº 3
Estructura de Datos
5
Listas de enlace simple lineal no ordenada
Las listas de enlace simple son una estructura de datos lineal que está compuesta por una clase
autorreferenciada conocida como nodo, conectados por enlaces de referencia 9 , donde la
referencia existente es al nodo siguiente.
La memoria dinámica hace referencia a la memoria variable del computador (RAM), las
direcciones en esta memoria se desconocen, la ubicación en esta memoria se conoce mediante
los apuntadores.
La memoria estática es la que almacena los apuntadores de la memoria dinámica.
Los apuntadores se representan en el diagrama mediante una flecha y la dirección de
memoria se representa en hexadecimal.
Definición de una Lista
Una lista es un conjunto de nodos que se encuentran enlazados entre sí.
10
Ilustración 2 Lista Simple
9
Deitel, Deitel. Como Programar en JAVA. Pág. 954
10
Imagen tomada de Mamani Torres, Cristian Denis. Estructuras de Datos en Java.pdf
Cabeza
Información
Referencia o
Apuntador
1F3A
Información
34EA
Información
null
E45F
E45F
34EA1F3A
MemoriaDinámica
Memoria Estática
6. Listas de Enlace Simple Lineal
No Ordenada
Guía Nº 3
Estructura de Datos
6
Un nodo en el campo de la información puede contener un objeto, en lugar de un solo dato, esto
para almacenar más información en un solo espacio de memoria.
Un ejemplo de una lista de enlace simple lineal no ordenada, puede ser la lista de estudiantes
en donde el estudiante tendrá un nombre, apellido, código, y una nota.
7. Listas de Enlace Simple Lineal
No Ordenada
Guía Nº 3
Estructura de Datos
7
El diagrama de clases de una lista en UML, aplicando lo anterior seria:
Ilustración 3 Diagrama de clases Lista en UML
Para el usuario no existe la clase nodo, es decir las funciones aplicadas a los datos del estudiante
deben estar en la clase Lista y en la clase Estudiante solo se puede extraer la información.
Operaciones en la lista
Dentro de la lista se pueden ejecutar varias operaciones como:
• Verificar si es vacía.
• Insertar, eliminar o localizar un nodo.
Las operaciones de la lista se elaboran en la clase lista.
8. Listas de Enlace Simple Lineal
No Ordenada
Guía Nº 3
Estructura de Datos
8
Verificar si es vacía
Para verificar si la lista está vacía se evalúa la existencia del nodo cabeza así:
Ilustración 4 Método comprobación existencia lista
Si el nodo cabeza es igual a null el método retorna true, que quiere decir que la lista está vacía
y si la respuesta es contraria la lista tiene por lo menos un nodo.
Insertar un nodo
Para insertar un nodo debe existir la cabeza de la lista de lo contrario el nodo a ingresar será la
cabeza; adema para insertar un nodo se debe saber en dónde se va a ingresar, ya sea al inicio,
al final o en un orden especifico.
En la guía se trabaja el ingreso en el inicio:
Ilustración 5 Método insertar un nodo
9. Listas de Enlace Simple Lineal
No Ordenada
Guía Nº 3
Estructura de Datos
9
Buscar un nodo
Para buscar un nodo se debe verificar la existencia de la lista e indicar el nodo a buscar.
Ilustración 6 Método Buscar un nodo
Eliminar un nodo
Para eliminar un nodo, debe existir la lista y se debe enunciar el nodo que se desea eliminar,
para enunciar el nodo a eliminar se ingresa un dato que lo identifica.
Ilustración 7 Método eliminar nodo
Es necesario almacenar el nodo visitado, para poder asignarle la referencia del nodo a eliminar,
pues si esto no se realiza se perderá la lista que esta después del nodo eliminado.
10. Listas de Enlace Simple Lineal
No Ordenada
Guía Nº 3
Estructura de Datos
10
Ejercicio
Se desea tener la lista de los empleados de una empresa en la que se puede obtener el número
total de empleados, el pago a pensiones y salud que realiza la empresa a los empleados,
además de su información personal.
11. Listas de Enlace Simple Lineal
No Ordenada
Guía Nº 3
Estructura de Datos
11
Bibliografía
Estructuras de Datos en Java (Cristian Denis Mamani Torres). (2020). Recuperado
28 March 2020, en https://studylib.es/doc/8209897/estructuras-de-datos-en-java--
cristian-denis-mamani-torres-
Deitel, P., Deitel, H. and Romero Elizondo, A., 2016. Como Programar En Java.
10th ed. mexico: Deitel.
Programacion en Castellano, S. (2020). Estructuras de Datos y Algoritmos en
Java. Recuperado 28 March 2020, en
https://programacion.net/articulo/estructuras_de_datos_y_algoritmos_en_java_309
/4
Estructuras dinamicas - Estructuras de Datos en Java. (2020). Recuperado 28
March 2020, en https://sites.google.com/a/espe.edu.ec/programacion-
ii/home/estructuras-dinamicas
CONTROL DE CAMBIOS
Fecha Observación Autor
28/03/2020
Se crea guía Nº 3, sobre manejo de
datos
Mg. Josué Nicolás
Pinzón Villamil