La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.

Presentaciones similares


Presentación del tema: "Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos."— Transcripción de la presentación:

1 Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

2 Lista circular Definición Una lista circular es una colección de elementos llamados nodos, organizados de tal manera que el siguiente del ultimo nodo apunta al nodo cabecera

3 Lista circular El campo siguiente del ultimo nodo, aquel cuyo dato es 51, apunta al nodo cabecera dato siguiente 2351 dato siguiente

4 Lista circular Definición Una lista circular es una estructura de datos dinámica que permite almacenar cualquier cantidad de nodos. Tiene la ventaja de que procesos de búsqueda o de manipulación de los datos que requieran recorrer la lista completa más de una vez se realizan eficientemente

5 Lista circular Definición Las operaciones sobre una lista enlazada son: Crear lista circular Insertar nodo al inicio Eliminar nodo al inicio Imprimir datos Es una lista circular vacía?

6 Lista circular Crear lista circular Al crear una lista circular, se crea el nodo cabecera. El nodo cabecera tiene como dato null y como siguiente null.

7 Insertar nodo al inicio( La lista circular está vacía ) W 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

8 Insertar nodo al inicio( La lista no está vacía ) 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 AW Lista circular

9 Eliminar nodo al inicio(La lista circular tiene mas de un nodo) AW W Al nodo cabecera se le asigna como siguiente, el siguiente del primer nodo Lista circular

10 Eliminar nodo al inicio(La lista circular tiene un nodo) W Al campo siguiente del nodo cabecera se le asigna null Lista circular

11 Imprimir datos Lista circular

12 Está una lista vacía? Cuando la lista está vacía el campo siguiente de la cabecera es null Lista circular

13 Cada nodo se representa por medio de dos campos: Campo dato: contiene el valor del nodo Campo siguiente: indica cuál 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; } Lista circular

14 Crear lista circular Al crear una lista circular, se crea el nodo cabecera. El nodo cabecera tiene como dato null y como siguiente null. class ListaC{ Nodo cabecera; ListaC() { cabecera=new Nodo(null); } Lista circular

15 Está una lista circular vacía? Cuando la lista está vacía el campo siguiente de la cabecera es null public boolean estaVacia(){ if (cabecera.siguiente==null) { return true; } else { return false; } Lista circular

16 Insertar nodo al inicio ( La lista circular está vacía) 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 void insertar(Object o) { Nodo nuevo=new Nodo(null); if ( estaVacia() ) { nuevo=new Nodo(o); nuevo.siguiente=cabecera; cabecera.siguiente=nuevo; } Lista circular

17 Insertar nodo al inicio ( La lista circular no está vacía) 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 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.siguiente ; cabecera.siguiente=nuevo; } Lista circular

18 Eliminar nodo al inicio Al campo siguiente del nodo cabecera se le asigna null, si solo hay un nodo Al nodo cabecera se le asigna como siguiente, el siguiente del primer nodo, si la lista circular tiene más de un nodo public void eliminar() { Nodo borrar=cabecera.siguiente; if (borrar.siguiente==cabecera) cabecera.siguiente=null; else{ cabecera.siguiente=borrar.siguien te; } } Lista circular


Descargar ppt "Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos."

Presentaciones similares


Anuncios Google