You are on page 1of 21

ESTRUCTURAS DE DATOS

Listas Enlazadas

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

kate

sarah

Nodo 1

Nodo 2

Nodo 3

Dato: oscar

Dato: kate

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 (Inicio, Final, Interno?)
Eliminar nodo (Inicio, Final, Interno?)
Listar datos

Listas enlazadas
Definicin

Al primer nodo se le llama cabecera o inicio


y sirve como punto de referencia en la lista.

Listas enlazadas

Crear lista

Al crear una lista, se crea el nodo cabecera.


El nodo cabecera tiene como siguiente null.

Listas enlazadas
Insertar nodo al inicio

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)
Inicio
X

Inicio
X

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
Est una lista vaca?
Cuando la lista est vaca el nodo inicial es NULL

Listas enlazadas

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 = null;
}

. . .
}

Crear lista
Al crear una lista, el
nodo inicial referencia a
NULL

Listas enlazadas

public boolean estaVacia(){


if (cabecera==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(o);

if ( estaVacia() )
{
cabecera=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
nuevo=new Nodo(o);
if ( estaVacia() ){

Insertar nodo al inicio


( La lista no est vaca)

cabecera=nuevo;
}else{
nuevo.siguiente=cabecera;
cabecera=nuevo;
}
}

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

public void eliminar()


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

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

You might also like