Está en la página 1de 20

Listas enlazadas

Definicin

Una lista enlazada tambin recibe el nombre de "lista


concatenada", "lista eslabonada" o "lista lineal".
Una lista enlazada es una coleccin de elementos
llamados nodos. Cada nodo contiene un dato y una
referencia al siguiente nodo.

Listas enlazadas

dato
23

siguiente

dato

siguiente

99

Cada nodo se representa por medio de dos campos:

Campo dato: contiene el valor del nodo


Campo siguiente: indica cul es el nodo con el que se enlaza

Listas enlazadas
Lista enlazada con 3 nodos.
Los nodos tienen datos de tipo
entero.
23

99

Nodo 1

Nodo 2

Nodo 3

Dato: 23

Dato: 6

Dato: 99

Siguiente: Nodo 2

Siguiente: Nodo 3

Siguiente: null
(indica que es el fin de
la lista)

Listas enlazadas
Lista enlazada con 3 nodos.
Los nodos tienen datos de tipo
String.
Moises

Pedro

Sarah

Nodo 1

Nodo 2

Nodo 3

Dato: Moises

Dato: Pedro

Dato: Sarah

Siguiente: Nodo 2

Siguiente: Nodo 3

Siguiente: null

Listas enlazadas
Definicin

Una lista enlazada es una estructura de datos dinmica


que permite almacenar cualquier cantidad de nodos
Las operaciones sobre una lista enlazada son:
Crear lista
Insertar nodo al inicio
Eliminar nodo al inicio
Imprimir datos
Es una lista vaca?

Listas enlazadas
Definicin

Al primer nodo se le llama cabecera y sirve


como punto de referencia en la lista.
No contiene ningn dato

Listas enlazadas

Crear lista

Al crear una lista, se crea el nodo cabecera.


El nodo cabecera tiene como dato null y como
siguiente null.

Listas enlazadas
Insertar nodo al inicio( La lista est vaca)

Se crea un nuevo nodo con el


dato que se desee colocar y con
siguiente null
W

El campo siguiente del nodo


cabecera pasa de ser null a ser el
nodo que estamos insertado

Listas enlazadas
Insertar nodo al inicio( La lista no est vaca)
W

Se crea un nuevo nodo con el dato que se desee colocar y en su campo siguiente

se establece el siguiente del nodo cabecera


Al nodo cabecera se le asigna como siguiente el nodo que estamos insertando

Listas enlazadas

Eliminar nodo al inicio

Al nodo cabecera se le asigna como siguiente, el siguiente del primer nodo

Listas enlazadas

Imprimir datos

Listas enlazadas

Est una lista vaca?


Cuando la lista est vaca el campo siguiente de la
cabecera es null

Listas enlazadas
class Nodo{
Object dato;
Nodo siguiente;
Nodo(Object o)
{
dato=o;
siguiente=null;
}
Nodo(Object o, Nodo n)
{
dato=o;
siguiente=n;
}
}

Cada nodo se
representa por medio
de dos campos:

Campo dato: contiene


el valor del nodo

Campo siguiente:
indica cul es el nodo
con el que se enlaza

Listas enlazadas

class Lista{

Nodo cabecera;

Lista()
{
cabecera=new Nodo(null);
}

. . .
}

Crear lista
Al crear una lista, se
crea el nodo cabecera.
El nodo cabecera tiene
como dato null y como
siguiente null.

Listas enlazadas

public boolean estaVacia(){


if (cabecera.siguiente==null)

Est una lista

vaca?

{
return true;
}
else

{
return false;
}
}

Cuando la lista est


vaca el campo
siguiente de la
cabecera es null

Listas enlazadas

void insertar(Object o)
{

Insertar nodo al inicio


( La lista est vaca)

Nodo nuevo=new Nodo(null);

if ( estaVacia() )
{
nuevo=new Nodo(o);
nuevo.siguiente=null;
cabecera.siguiente=nuevo;
}

Se crea un nuevo nodo con el


dato que se desee colocar y con
siguiente null
El campo siguiente del nodo
cabecera pasa de ser null a ser el
nodo que estamos insertado

Listas enlazadas
if ( estaVacia() )

Insertar nodo al inicio


( La lista no est vaca)

{
nuevo=new Nodo(o);
nuevo.siguiente=null;
cabecera.siguiente=nuevo;
}
else

dato que se desee colocar y en


su campo siguiente se
establece el siguiente del nodo
cabecera

Al nodo cabecera se le asigna

nuevo=new Nodo(o);

como siguiente el nodo que


estamos insertando

nuevo.siguiente=cabecera.siguiente;
cabecera.siguiente=nuevo;
}
}

Se crea un nuevo nodo con el

Listas enlazadas

public void eliminar()


{
Nodo borrar=cabecera.siguiente;
cabecera.siguiente=borrar.siguiente;
}

Eliminar nodo al inicio


Al nodo cabecera se le asigna como

siguiente, el siguiente del primer nodo

Listas enlazadas
public void imprimir()
{
Nodo actual=new Nodo(null);
if (estaVacia())
System.out.println(La lista esta vacia");
else
{
actual=cabecera;
System.out.println("\n");
while( actual != null){
System.out.print( actual.dato );
actual=actual.siguiente;
}
}
}

Imprimir datos

Listas enlazadas

También podría gustarte