Post on 26-Sep-2015
description
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
23
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
dato siguiente
99
dato siguiente
Listas enlazadas
23 6 99
Lista enlazada con 3 nodos.
Los nodos tienen datos de tipo entero.
Nodo 1
Dato: 23
Siguiente: Nodo 2
Nodo 2
Dato: 6
Siguiente: Nodo 3
Nodo 3
Dato: 99
Siguiente: null
(indica que es el fin de
la lista)
Listas enlazadas
oscar kate sarah
Lista enlazada con 3 nodos.
Los nodos tienen datos de tipo String.
Nodo 1
Dato: oscar
Siguiente: Nodo 2
Nodo 2
Dato: kate
Siguiente: Nodo 3
Nodo 3
Dato: sarah
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 listaInsertar nodo (Inicio, Final, Interno?)Eliminar nodo (Inicio, Final, Interno?)Listar datos
Listas enlazadas
Definicin
E A R E
Al primer nodo se le llama cabecera o inicio y sirve como punto de referencia en la lista.
Listas enlazadas
Crear lista
X
Al crear una lista, se crea el nodo cabecera.
El nodo cabecera tiene como siguiente null.
Listas enlazadas
Insertar nodo al inicio
W
X W
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
Insertar nodo al inicio( La lista no est vaca)
X 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
X A W
Inicio
Inicio
Listas enlazadas
Eliminar nodo al inicio
X A W
A W
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
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
class Nodo{
Object dato;
Nodo siguiente;
Nodo(Object o)
{
dato=o;
siguiente=null;
}
Nodo(Object o, Nodo n){
dato=o;
siguiente=n;
}
}
Listas enlazadas
Crear lista
Al crear una lista, el nodo inicial referencia a NULL
class Lista{
Nodo cabecera;
Lista()
{
cabecera = null;
}
. . .
}
Listas enlazadas
Est una lista vaca?
Cuando la lista est
vaca el campo
siguiente de la
cabecera es null
public boolean estaVacia(){
if (cabecera==null)
{
return true;
}
else
{
return false;
}
}
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
El campo siguiente del nodo
cabecera pasa de ser null a ser el
nodo que estamos insertado
void insertar(Object o)
{
Nodo nuevo=new Nodo(o);
if ( estaVacia() )
{
cabecera=nuevo;
}
Listas enlazadas
Insertar nodo al inicio( La lista no est vaca)
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
nuevo=new Nodo(o);
if ( estaVacia() ){
cabecera=nuevo;
}else{
nuevo.siguiente=cabecera;
cabecera=nuevo;
}
}
Listas enlazadas
Eliminar nodo al inicio
Al nodo cabecera se le asigna como siguiente, el siguiente del primer nodo
public void eliminar()
{
Nodo borrar=cabecera;
cabecera =borrar.siguiente;
borrar = null;
}
Listas enlazadas
Imprimir datospublic 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;
}
}
}
Listas enlazadas