Listas enlazadas
-
Upload
leo-guerrero -
Category
Documents
-
view
36 -
download
1
description
Transcript of Listas enlazadas
-
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