0% encontró este documento útil (0 votos)
183 vistas4 páginas

Investigacion Listas Circulares

Una lista circular es una lista en la que el último nodo apunta al primero, formando un ciclo. Esto evita excepciones y permite moverse en cualquier dirección a través de la lista. Las listas circulares requieren que cada nodo tenga un campo "siguiente" y no exista un nodo que apunte a NULL. Las operaciones básicas como insertar, eliminar y buscar nodos son similares a las listas lineales, solo que se puede empezar desde cualquier punto de la lista.

Cargado por

Daniel Dominguez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
183 vistas4 páginas

Investigacion Listas Circulares

Una lista circular es una lista en la que el último nodo apunta al primero, formando un ciclo. Esto evita excepciones y permite moverse en cualquier dirección a través de la lista. Las listas circulares requieren que cada nodo tenga un campo "siguiente" y no exista un nodo que apunte a NULL. Las operaciones básicas como insertar, eliminar y buscar nodos son similares a las listas lineales, solo que se puede empezar desde cualquier punto de la lista.

Cargado por

Daniel Dominguez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 4

3-12-2020 LISTAS

CIRCULARES
INVESTIGACION

Daniel Medina Dominguez


MATERIA: ESTRUCTURA DE DATOS
PROFESORA: CLAUDIA MORAN SANCHEZ
GRUPO: 15301
INVESTIGACION
Definición.
Una lista circular es una lista lineal en la que el último nodo a punta al primero.
Las listas circulares evitan excepciones en la operaciones que se realicen sobre ellas. Cada
nodo siempre tiene uno anterior y uno siguiente.
¿Por qué utilizar una estructura Circular?
En una lista simplemente enlazada, el movimiento siempre fluirá desde la cabeza en
dirección hacia el final de la lista, pero ¿qué ocurre cuando desde el último nodo se
necesita operar con el primero?, este es el punto diferencial de una estructura abierta y
una cerrada.
En una lista circular:

 No existe algún elemento que apunte a NULL


 Se integra una estructura tipo anillo
 Solo hay una cabeza
 La cabeza siempre será el siguiente enlace para algún nodo
 Se pueden llegar a crear recorridos en bucles infinitos
Cada una de éstas operaciones podrá tener varios casos especiales, por ejemplo,
deberemos tener en cuenta cuando se inserte un nodo en una lista vacía, o cuando se
elimina el único nodo de una lista.
Declaraciones de tipos para manejar listas circulares
class Nodo{
int dato;
Nodo siguiente;
Cada Nodo se representa por medio de
Nodo(int d) {
dos campos:
dato=d;
Campo dato:
siguiente=null; Contiene el valor del Nodo.
} Campo siguiente:
Nodo(int d, Nodo n) { Indica cual es el Nodo con el que
se enlaza.
dato=d;
siguiente=n;
}
INVESTIGACION
}

class ListaC { Crear lista circular

Nodo cabecera; Al crear una lista circular, se crea el Nodo


cabecera.
ListaC() {
El Nodo cabecera tiene como dato null y como
cabecera=new Nodo(null); siguiente null.
}

Operaciones básicas con listas circulares


A todos los efectos, las listas circulares son como las listas abiertas en cuanto a las
operaciones que se pueden realizar sobre ellas:

 Añadir o insertar elementos


o Partiremos de que ya tenemos el nodo a insertar y, por supuesto un
puntero que apunte a él, además el puntero que define la lista, que valdrá
NULL:
El proceso es muy simple, bastará con hacer que:
1. lista apunte a nodo.
2. y lista->siguiente apunte a nodo.
 Borrar elementos
Para ésta operación podemos encontrar tres casos diferentes:
1. Eliminar un nodo cualquiera, que no sea el apuntado por lista.
2. Eliminar el nodo apuntado por lista, y que no sea el único nodo.
3. Eliminar el único nodo de la lista.

En el primer caso necesitamos localizar el nodo anterior al que queremos


borrar. Como el principio de la lista puede ser cualquier nodo, haremos que sea
precisamente lista quien apunte al nodo anterior al que queremos eliminar.
Esto elimina la excepción del segundo caso, ya que lista nunca será el nodo a
eliminar, salvo que sea el único nodo de la lista.
INVESTIGACION
Una vez localizado el nodo anterior y apuntado por lista, hacemos que lista-
>siguiente apunte a nodo->siguiente. Y a continuación borramos nodo.
En el caso de que sólo exista un nodo, será imposible localizar el nodo anterior,
así que simplemente eliminaremos el nodo, y haremos que lista valga NULL.

 Buscar a través de la lista, siguiente


A la hora de buscar elementos en una lista circular sólo hay que tener una
precaución, es necesario almacenar el puntero del nodo en que se empezó la
búsqueda, para poder detectar el caso en que no exista el valor que se busca.
Por lo demás, la búsqueda es igual que en el caso de las listas abiertas, salvo
que podemos empezar en cualquier punto de la lista.

Esta estructura se aplica tanto a listas simples como a listas doblemente enlazadas. La
lista circular consiste en que la referencia siguiente del ultimo nodo apunta al primero
en vez de ser null, de ahí es que sea circular.

También podría gustarte