Sunteți pe pagina 1din 8

UNIVERSIDAD CENTRAL DEL ECUADOR

ESCUELA DE CIENCIAS FÍSICAS Y MATEMÁTICA


FACULTAD DE INGENIERÍA

CARRERA: INGENIERÍA INFORMÁTICA


CURSO: TERCER SEMESTRE
ASIGNATURA: ESTRUCTURA DE DATOS I

TEMA: LISTAS ENLAZADAS

PROFESORA: ING. YASMINA ATARIHUANA

2009
¿QUÉ ES UNA ESTRUCTURA DE DATOS?

En la programación existen problemas en los cuales se requiere operar con una colección
de datos. Por ejemplo, si requerimos almacenar información de los empleados de una
empresa para luego manipular esta información, si requerimos simular los clientes que
son atendidos en un supermercado, etc. En estos casos necesitamos agrupar estos
objetos para luego trabajar con ellos, en conclusión, una estructura de datos es una
manera de disponer de una colección de datos, así como, de la forma en cómo van a ser
manipulados, esto es, saber como se agregarán nuevos datos, cómo se accederán a
estos datos, cómo se eliminan datos, etc.

CLASIFICACIÓN DE LAS ESTRUCTURAS DE DATOS

En esta asignatura estudiaremos únicamente las estructuras de datos internas,


describiremos en qué consisten, cómo operan y sus aplicaciones. Una vez revisados los
conceptos de cada estructura las implementaremos en java.

En la Asignatura de Programación se estudiaron los arreglos, que son estructuras de


datos básicas, por lo que, en este documento no se revisará este tema.
LISTAS ENLAZADAS

Las estructuras de datos estudiadas hasta el momento, los arreglos, permiten almacenar
un número fijo de datos, pues son estructuras estáticas. Cuando se fija el espacio de
memoria asignado para un arreglo, y se sobrepasa el número de elementos que se
pueden almacenar, se requiere redefinir un nuevo arreglo con una dimensión mayor para
soportar agregar más elementos, sin embargo, para solventar estos problemas, surgen
las estructuras de datos dinámicas, las cuales asignan memoria a cada elemento
agregado, estando limitado únicamente por la memoria del computador.

Entre las estructuras dinámicas tenemos a las listas enlazadas.

¿QUÉ SON LAS LISTAS ENLAZADAS?

Son estructuras de datos dinámicas compuestas por nodos conectados. Los nodos son
elementos compuestos por campos de datos y referencias a otros nodos.

En java, una lista enlazada implica los siguientes conceptos: una clase con un campo
auto-referenciada, nodo, campo de enlace y enlace.

Clase auto-referenciada: una clase con al menos un campo cuyo tipo de referencia es el
nombre de la clase:

class Persona {
private String cedula;
private String nombres;
public Persona next;
// …….
}

Persona es una clase auto-referenciada porque su campo next es del mismo tipo de la
clase Persona.

• Nodo: un objeto creado desde una clase auto-referenciada.


• Campo de enlace: un campo cuyo tipo de referencia es el nombre de la clase. En el
fragmento de código anterior, next es un campo de enlace. Por el contrario, cédula
y nombres son campos no de enlace.
• Enlace: la referencia a un campo de enlace
TIPOS DE LISTAS ENLAZADAS:

A. Lista Enlazadas Simples,


B. Listas Doblemente Enlazadas,
C. Listas Enlazadas Circulares y
D. Listas Enlazadas Doblemente Circulares.

A. LISTAS ENLAZADAS SIMPLES

Una lista enlazada simple es una lista de nodos enlazados (conectados), donde cada
nodo tiene un campo único de enlace. Una variable de referencia contiene una referencia
al primer nodo de la lista, cada nodo se enlaza con el nodo siguiente, y el enlace del
último nodo contiene null para indicar el final de la lista. El nombre habitual para la
variable de referencia es top, sin embargo, se puede elegir cualquier nombre.

A continuación se presentan dos ejemplos para representar gráficamente a una lista


enlazada simple:
Manejo de la Memoria:

El almacenamiento de los elementos de las listas no es consecutivo como lo es en los


arreglos. En la siguiente figura se muestra la representación gráfica del manejo de la
memoria en las listas enlazadas y en los arreglos, se observa que al agregar un elemento
en una lista se asigna memoria no consecutiva, y el nodo anterior tiene el valor del enlace
a este nuevo nodo agregado, de esta manera quedan conectados aún cuando no sean
consecutivos en su almacenamiento en la memorial, por el contrario los arreglos se
almacenan en forma consecutiva.

A continuación revisaremos los algoritmos de inserción de nodos en una lista enlazada


simple:
a) Si la lista está vacía
b) Inserción al inicio de la lista
c) Inserción al final de la lista
d) Inserción a continuación de un nodo específico
Ahora conocemos como se crean nodos y se insertan en una posición determinada de la
lista enlazándose con sus nodos adyacentes.

Se proponen los siguientes ejercicios como taller:

• Inserción ordenada
• Concatenación e Inversión
• Eliminación de nodos

S-ar putea să vă placă și