Está en la página 1de 14

TEMA III: LISTAS

LISTAS CIRCULARES
LC

M.Sc. Leticia Gómez Valda


2. Lista Enlazada Circular

ListaC

Caracteristicas:
• Es una lista simple, es decir que tiene un solo enlace
• El último nodo apunta al principio, es decir que no existe null
• Cada nodo puede almacenar información de tipo simple o
compuesta
• Existe una variable que apunta al final de la lista para tener la
referencia del último nodo y del primer nodo
M.Sc. Leticia Gómez Valda
2. Lista Enlazada Circular
• Operaciones Básicas:

• Inicializar
• Insertar un nodo
• Eliminar un nodo
• Visualizar la lista
• Contro de lista vacía
• Otras operaciones:
• Ordenar los elementos en una lista
• Busrcar un element en una lista
• etc.
M.Sc. Leticia Gómez Valda
2. Lista Enlazada Circular

Definición del Nodo


class CNodo
{
int info;
Info Sgte.
CNodo sgte;
}

M.Sc. Leticia Gómez Valda


2. Lista Enlazada Circular

• Inicializar class CListaCir {


CNodo ListaC=new CNodo();
ListaC

CListaCir() {
ListaC=null;
}
...// el resto de las Oper.
}

M.Sc. Leticia Gómez Valda


2. Lista Enlazada Circular

a) Insertar al Inicio
• Insertar b) Insertar al Final
c) Insertar después de un nodo
• Crear Nnodo con memoria
a) Insertar al Inicio dinámica
ListaC ListaC • Vaciar el dato al nodo
• Enlazar el nuevo nodo con
40 40
el primer nodo
Nnodo
Nnodo
• Enlazar el ultimo nodo con
M.Sc. Leticia Gómez Valda el Nuevo nodo
Insertar 20
ListaC

40 • Crear Nnodo con memoria


Nnodo
dinámica
ListaC

20 40 • Vaciar el dato al nodo


Nnodo
ListaC

• Enlazar el nuevo nodo con el


20 40
primer nodo
Nnodo ListaC

40
• Enlazar el ultimo nodo con el
20
Nuevo nodo
M.Sc. Leticia Gómez Valda
Nnodo
Insertar 60
ListaC

20 40 • Crear Nnodo con memoria


dinámica
Nnodo
ListaC

60 20 40 • Vaciar el dato al nodo


Nnodo
ListaC

60 20 40 • Enlazar el nuevo nodo con el


Nnodo
primer nodo
ListaC
• Enlazar el ultimo nodo con el
60 20 40
Nuevo nodo
Nnodo M.Sc. Leticia Gómez Valda
a) Insertar al Inicio
public void InsertarI(int dato)
{
• Controlar si la lista está Nnodo=new CNodo();
Nnodo.info=dato;
vacía if(ListaC==null)
• Crear Nnodo con {
memoria dinámica ListaC=Nnodo;
Nnodo.sgte=Nnodo;
• Vaciar el dato al nodo }
• Enlazar el nuevo nodo else
con el primer nodo {
Nnodo.sgte=ListaC.sgte;
• Enlazar el ultimo nodo ListaC.sgte=Nnodo;
con el Nuevo nodo }
}M.Sc. Leticia Gómez Valda
b) Insertar al final
ListaC ListaC

40 40 • Controlar si la lista está


Nnodo Nnodo
vacía
ListaC
• Crear Nnodo con memoria
20 40 60 dinámica y vaciar el dato al
ListaC
Nnodo
nodo
20 40 60
• Enlazar el nuevo nodo sgte
Nnodo
con el primer nodo
ListaC • Enlazar el ultimo nodo con
20 40 60 el Nuevo nodo y actualizar
Nnodo
M.Sc. Leticia Gómez Valda ListaC
b) Insertar al final
public void InsertarFinal(int dato)
{
• Controlar si la lsta está CNodo Nnodo=new CNodo();
vacía Nnodo.info=dato;
if(ListaC==null)
• Crear Nnodo con memoria {
dinámica y vaciar el dato al ListaC=Nnodo;
Nnodo.sgte=Nnodo;
nodo }
else
• Enlazar el nuevo nodo sgte {
con el primer nodo Nnodo.sgte=ListaC.sgte;
ListaC.sgte=Nnodo;
• Enlazar el ultimo nodo con ListaC=Nnodo;
el Nuevo nodo y actualizar }
}
ListaC M.Sc. Leticia Gómez Valda
• Recorrido ListaC

60 20 40

aux

• Recorrido para Imprimir ListaC

60 20 40

aux
ListaC

60 20 40

aux
M.Sc. Leticia Gómez Valda
• Recorrido para Imprimir

• Apuntar con una variable public void Imprimir(int dato)


{
auxiliar al inicio de la lista if(ListaC==null)
System.out.print("LISTA CIRCULAR VACIA!!");
• Imprimir la información else
{
del auxiliar dentro un CNodo aux=ListaC.sgte;
do{
bucle avanzando al System.out.print(aux.info+" ");
siguiente nodo. El control aux=aux.sgte;

de la condición del bucle }while(aux!=ListaC.sgte);

convenientemente debe }
}
hacerse al final
M.Sc. Leticia Gómez Valda
EJERCICIOS (TRABAJO EN GRUPOS)

Esquematizar cada operación y desarrollar el código correspondiente respecto a Listas


circulares

1. Desarrollar la inserción de un nodo según el campo información (un


método)
2. Desarrollar la Eliminación del primero y último nodo (dos métodos)
3. Desarrollar la Eliminación de un nodo según su campo información
4. Desarrollar la búsqueda de un elemento en la lista circular según su
campo información y mencionar si existe o no existe.

M.Sc. Leticia Gómez Valda

También podría gustarte