You are on page 1of 7

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 ecepto
el primero y el !ltimo.
"a lectura de una lista se reali#a
secuencialmente pero su posicin f$sica en
memoria solo depende del m%todo para
implementarla. &i por ejemplo usamos
1
punteros 'que es la t%cnica ms adecuada'
podemos almacenar los componentes de la
lista en posiciones dispersas de memoria(
aunque ante el usuario continuara
apareciendo como una estructura secuencial.
&e llaman operaciones simples las que
afectan a un solo dato y complejas las que
afectan a )arios. "as operaciones complejas
pueden reali#arse repitiendo las simples.
Es necesario almacenar al menos la posicin
de memoria del primer elemento.
*dems es dinmica( es decir( su tama+o
cam,ia durante la ejecucin del programa.
Una lista enla#ada se puede definir
recursi)amente de la siguiente manera:
a)una lista enla#ada es una estructura )ac$a
o
-
,)un elemento de informacin y un enlace
.acia una lista (un nodo).
/rficamente se suele representar as$:
Una lista puede cam,iar de tama+o( pero su
)entaja fundamental es que son flei,les a la
.ora de reorgani#ar sus elementos0 a cam,io
se .a de pagar una mayor lentitud a la .ora de
acceder a cualquier elemento.
1
Implementacin con Arreglos
2
Implementacin con variables Referencias
Se debe definir una clase que implemente la lista.
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;
}
}
3
Un programa que acceda a la lista.
public class agrega {
public static void main(String [ args){
nodo p,!;
p = ne" nodo(#uno#,null);
! = ne" nodo();
!$setElemento(#dos#);
!$setSiguiente(p);
p = !;
! = ne" nodo();
!$setElemento(#tres#);
!$setSiguiente(p);
p = !;
"hile (!%=null){
S&stem$out$println(!$getElemento());
S&stem$out$println(!$toString());
!=!$getSiguiente();
}
}

}
4
5peraciones fundamentales con listas:
*gregar elementos
*l inicio
*l final
*l medio
Eliminar elementos
*l inicio
*l final
*l medio
Consultar por un elemento espec$fico.
6eterminar si la lista esta )ac$a.
6eterminar si .ay memoria para contener la lista.
7ecorrer una lista
7ecorrido de una lista iterati)o.
7ecorrido de una lista recursi)o.
8

You might also like