You are on page 1of 4

LISTA

Una lista enlazada es una de las estructuras de datos fundamentales, y


puede ser usada para implementar otras estructuras de datos. Consiste
en una secuencia de nodos, en los que se guardan campos de datos
arbitrarios y una o dos referencias, enlaces o punteros (punteros) al
nodo anterior o posterior. El principal beneficio de las listas enlazadas
respecto a losvectores convencionales es que el orden de los elementos
enlazados puede ser diferente al orden de almacenamiento en la
memoria o el disco, permitiendo que el orden de recorrido de la lista sea
diferente al de almacenamiento.

Una lista enlazada es un tipo de dato autoreferenciado porque contienen


un puntero o enlace (en ingls link, del mismo significado) a otro dato del
mismo tipo. Las listas enlazadas permiten inserciones y eliminacin de
nodos en cualquier punto de la lista en tiempo constante (suponiendo
que dicho punto est previamente identificado o localizado), pero no
permiten un acceso aleatorio. Existen diferentes tipos de listas
enlazadas: Lista Enlazadas Simples, Listas Doblemente Enlazadas,
Listas Enlazadas Circulares y Listas Enlazadas Doblemente Circulares.

Las listas enlazadas pueden ser implementadas en muchos lenguajes.


Lenguajes tales como Lisp y Scheme tiene estructuras de datos ya
construidas, junto con operaciones para acceder a las listas enlazadas.
Lenguajes imperativos u orientados a objetos tales como C o C++ y
Java, respectivamente, disponen de referencias para crear listas
enlazadas.
Una lista es una estructura de datos secuencial.
Lista densa: la propia estructura determina cul es el siguiente elemento
de la lista. Ejemplo: un array.

Lista enlazada: la posicin del siguiente elemento de la estructura la


determina el elemento actual.
Una lista es una secuencia de elementos llamados nodos. Cada nodo
esta formado por un campo de datos y 1 o ms campos de enlace que
apunta(n) al siguiente nodo. Todo nodo tiene un predecesor y antecesor
excepto el primero y el ltimo.

La lectura de una lista se realiza secuencialmente pero su posicin fsica


en memoria solo depende del mtodo para implementarla. Si por
ejemplo usamos punteros que es la tcnica ms adecuada podemos
almacenar los componentes de la lista en posiciones dispersas de
memoria, aunque ante el usuario continuara apareciendo como una
estructura secuencial.
Se llaman operaciones simples las que afectan a un solo dato y
complejas las que afectan a varios. Las operaciones complejas pueden
realizarse repitiendo las simples.
Es necesario almacenar al menos la posicin de memoria del primer
elemento.
Adems es dinmica, es decir, su tamao cambia durante la ejecucin
del programa. Una lista enlazada se puede definir recursivamente de la
siguiente manera:

a) una lista enlazada es una estructura vaca o


b) un elemento de informacin y un enlace hacia una lista (un nodo).
c) Grficamente se suele representar as:

Una lista puede cambiar de tamao, pero su ventaja fundamental es que


son flexibles a la hora de reorganizar sus elementos; a cambio se ha de
pagar una mayor lentitud a la hora de acceder a cualquier elemento.
Implementacin con variables Referencias
Se debe definir una clase que implemente la lista.

Ejemplo: en cdigo
public class nodo {
private Object elemento;
private nodo siguiente;
public nodo() {
this(null,null);
}
public nodo(Object e, nodo n){
elemento=e;
siguiente=n;
}
Object getElemento(){
return elemento;
} nodo getSiguiente(){
return siguiente;
}
void setElemento(Object nuevoelemento){
elemento=nuevoelemento;
}
void setSiguiente(nodo nuevosiguiente){
siguiente=nuevosiguiente;
}
}
Un programa que acceda a la lista.
public class agrega {
public static void main(String [] args){
nodo p,q;
p = new nodo("uno",null);
q = new nodo();
q.setElemento("dos");
q.setSiguiente(p);
p = q;
q = new nodo();
q.setElemento("tres");
q.setSiguiente(p);
p = q;
while (q!=null){
System.out.println(q.getElemento());
System.out.println(q.toString());
q=q.getSiguiente(); } } }

You might also like