listasenlazadas

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

Upload: yatarihuana

Post on 14-Jun-2015

501 views

Category:

Documents


0 download

DESCRIPTION

Listas enlazadas en java

TRANSCRIPT

Page 1: ListasEnlazadas

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

Page 2: ListasEnlazadas

¿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.

Page 3: ListasEnlazadas

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

Page 4: ListasEnlazadas

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:

Page 5: ListasEnlazadas

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íab) Inserción al inicio de la listac) Inserción al final de la listad) Inserción a continuación de un nodo específico

Page 6: ListasEnlazadas
Page 7: ListasEnlazadas
Page 8: ListasEnlazadas

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