Listas Enlazadas en Java

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 14

LISTAS ENLAZADAS

UNIVERSIDAD DE CARTAGENA
CENTRO TUTORIAL DE CERETÉ
TUTORA: ADRIANA OLIER
CLASES AUTOREFERENCIADAS
Una clase autorreferenciada
contiene una variable de instancia
que hace referencia a otro objeto
del mismo tipo de clase. La imagen
de la izquierda es un ejemplo de
ella.

Tutora: Adriana Olier


CLASES AUTOREFERENCIADAS
La clase anterior (Nodo) tiene dos variables de instancia
privadas: una de tipo entero denominada datos y una referencia
Nodo llamada siguienteNodo. El atributo siguienteNodo hace
referencia a un objeto de la clase Nodo, un objeto de la misma
clase que se está declarando; es por ello que se utiliza el
término “clase autoreferenciada”. El campo siguienteNodo es un
enlace; “vincula” a un objeto de tipo Nodo con otro objeto del
mismo tipo.

Tutora: Adriana Olier


LA CLASE NODO
La clase Nodo incluye seis métodos que son:
• Dos constructores; el primero recibe un entero para inicializar a datos
y el segundo recibe dos parámetros para inicializar los atributos.
• setDatos que establece el valor de datos.
• getDatos para devolver el valor almacenado en datos.
• setSiguienteNodo para establecer el valor de siguienteNodo.
• getSiguienteNodo que retorna la referencia al siguiente nodo.

Tutora: Adriana Olier


Los programas pueden enlazar objetos autoreferenciados entre
sí para formar estructuras de datos útiles como listas, colas,
pilas y árboles. En la figura 17.1 se muestran dos objetos
autoreferenciados, enlazados entre sí para formar una lista.

Tutora: Adriana Olier


ASIGNACIÓN DINÁMICA DE
MEMORIA
Para crear y mantener estructuras dinámicas de datos se
requiere la asignación dinámica de memoria. Un programa
puede obtener más espacio de memoria en tiempo de
ejecución para almacenar nuevos nodos y liberar el espacio
que ya no se necesita.

Tutora: Adriana Olier


La anterior expresión de declaración y creación de instancia de
clase, asigna la memoria para almacenar un objeto de tipo Nodo
y devuelve una referencia al objeto que se asigna a
nodoParaAgregar. Si no hay disponible suficiente memoria, se
lanza la excepción OutOfMemoryError.

Tutora: Adriana Olier


LAS LISTAS ENLAZADAS
Una lista enlazada es una colección lineal (es decir, una
secuencia) de objetos de una clase autorreferenciada,
conocidos como nodos, que están conectados por
enlaces de referencia.

Tutora: Adriana Olier


Los nodos se componen de dos partes:
• la primera parte contiene la información o valor (denominado
dato, info, etc.), que puede ser de cualquier tipo.
• y la segunda parte es una referencia (denominado enlace o
siguiente) que enlaza al siguiente elemento de la lista. Se suelen
representar por flechas para facilitar la comprensión de la
conexión entre dos nodos e indicar que el enlace tiene la
dirección en memoria del siguiente nodo.

Tutora: Adriana Olier


La representación gráfica más extendida es aquella que utiliza
una caja (un rectángulo) con dos secciones en su interior. En la
primera sección se escribe el elemento o valor del dato, y en la
segunda sección, el enlace o referencia mediante una flecha
que sale de la caja y apunta al nodo siguiente.

e1 e2 e3 e4 ... en

Tutora: Adriana Olier


CLASIFICACIÓN DE LAS LISTAS
ENLAZADAS

1 • Simplemente enlazadas

2 • Doblemente enlazadas

3 • Circular simplemente enlazada

4 • Circular doblemente enlazada


Tutora: Adriana Olier
• Listas simplemente enlazadas. Cada nodo (elemento)
contiene un único enlace que lo conecta al nodo
siguiente o nodo sucesor.
• Listas doblemente enlazadas. Cada nodo contiene
dos enlaces, uno a su nodo predecesor y otro a su
nodo sucesor.

Tutora: Adriana Olier


• Lista circular simplemente enlazada. Una lista enlazada
simplemente en la que el último elemento (cola) se enlaza
al primer elemento (cabeza) de tal modo que la lista puede
ser recorrida de modo circular (“en anillo”).

• Lista circular doblemente enlazada. Una lista doblemente


enlazada en la que el último elemento se enlaza al primer
elemento y viceversa. Esta lista se puede recorrer de modo
circular (“en anillo”) tanto en dirección directa (“adelante”)
como inversa (“atrás”).

Tutora: Adriana Olier


BIBLIOGRAFÍA
• Deitel, P. J. & Deitel, H. M., Java: cómo programar.
Pearson Educación.
• Ruiz Rodríguez, Ricardo. Fundamentos de la
Programación Orientada a Objetos: Una Aplicación a
Las Estructuras de Datos en Java.

Tutora: Adriana Olier

También podría gustarte