Académique Documents
Professionnel Documents
Culture Documents
Definicin
Una lista circular es una coleccin de
elementos llamados nodos, organizados de
tal manera que el siguiente del ultimo
nodo apunta al nodo cabecera
Lista circular
23
dato
siguiente
dato
siguiente
51
dato
siguiente
Lista circular
Definicin
Una lista circular es una estructura de
datos dinmica que permite almacenar
cualquier cantidad de nodos.
Tiene la ventaja de que procesos de
bsqueda o de manipulacin de los datos
que requieran recorrer la lista completa
ms de una vez se realizan eficientemente
Lista circular
Definicin
Las operaciones sobre una lista enlazada
son:
Crear lista circular
Insertar nodo al inicio
Eliminar nodo al inicio
Imprimir datos
Es una lista circular vaca?
Lista circular
Lista circular
Insertar nodo al inicio( La lista circular
est vaca)
Se crea un nuevo nodo
con el dato que se desee
colocar y con siguiente
al nodo cabecera
Lista circular
Insertar nodo al inicio( La lista no est
vaca)
W
Lista circular
Lista circular
Lista circular
Imprimir datos
Lista circular
Est una lista vaca?
Cuando la lista est vaca el campo
siguiente de la cabecera es null
Lista circular
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
Lista circular
class ListaC{
Nodo cabecera;
ListaC()
{
cabecera=new Nodo(null);
}
Crear lista
circular
Al crear una lista
circular, se crea
el nodo cabecera.
El nodo cabecera
tiene como dato
null y como
siguiente null.
Lista circular
Est una
lista circular
vaca?
return true;
}
else
{
return false;
}
}
Cuando la lista
est vaca el
campo
siguiente de la
cabecera es
null
Lista circular
void insertar(Object o)
{
Nodo nuevo=new
Nodo(null);
if ( estaVacia() )
{
nuevo=new Nodo(o);
nuevo.siguiente=cabecera;
cabecera.siguiente=nuevo;
}
Insertar nodo al
inicio
( La lista circular
est vaca)
Se crea un nuevo
nodo con el dato que
se desee colocar y con
siguiente al nodo
cabecera
El campo siguiente
del nodo cabecera
pasa de ser null a ser
el nodo que estamos
insertado
Lista circular
void insertar(Object o)
{
Nodo nuevo=new Nodo(null);
if ( estaVacia() )
{
nuevo=new Nodo(o);
nuevo.siguiente=cabecera;
cabecera.siguiente=nuevo;
}
else
{
nuevo=new Nodo(o);
nuevo.siguiente=cabecera.sig
uiente;
cabecera.siguiente=nuevo;
Lista circular
LISTA DOBLEMENTE
ENLAZADA
5
1
9
9
izq. dato
der.
Se crea un nuevo
nodoDE con el dato que
se desee colocar, campo
izquierda apuntado al
nodo cabecera y campo
derecha apuntando a
null
El campo derecha del
nodo cabecera pasa de
ser null a ser el nodo
que estamos insertado
Crear listaDE
class ListaC{
Nodo cabecera;
ListaC()
{
cabecera=new
Nodo(null);
}
Al crear una
listaDE, se crea el
nodo cabecera.
El nodo cabecera
tiene como dato,
izquierda y
derecha a null.
Est una
lista circular
vaca?
Cuando la lista
est vaca el
campo
derecha de la
cabecera es
null
Insertar nodo al
inicio
( La listaDE est
vaca)
Se crea un nuevo
nodoDE con el dato
que se desee colocar,
campo izquierda
apuntado al nodo
cabecera y campo
derecha apuntando a
null
El campo derecha
del nodo cabecera
pasa de ser null a ser
el nodo que estamos
Eliminar nodo al
inicio
Al nodo cabecera
se le asigna como
derecha, la derecha
del primer nodo
Al campo
izquierda del
segundo nodo se le
asigna como
izquierda el nodo
cabecera