1 / 19

Estructuras de datos y algoritmos

Estructuras de datos y algoritmos. Oscar Bedoya. oscarbed@eisc.univalle.edu.co http://eisc.univalle.edu.co/~oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Cola Definición.

audra
Download Presentation

Estructuras de datos y algoritmos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Estructuras de datos y algoritmos Oscar Bedoya. oscarbed@eisc.univalle.edu.co http://eisc.univalle.edu.co/~oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C.

  2. Cola Definición Una cola es un conjunto ordenado de elementos de un tipo base. Los elementos se insertan a la cola por la parte posterior y se sacan por la parte delantera

  3. Cola Definición TDA Cola Descripción: El TDA Cola se caracteriza porque el primero en entrar es el primero en salir (Estructura FIFO) Invariante: Cola=(elem, cab, col), elem=<elem0, elem1, . . . , elemn-1> л ( i, 0 <= i < n, elemi  Tipo) лelem0=col лelemn-1=cab

  4. Cola Operaciones: Cola (Constructor) Meter Sacar Imprimir cola Buscar elemento en la cola Es una cola vacía?

  5. A W Cola cola cabecera

  6. A W A W X Cola cola cabecera cola cabecera

  7. A W X A X Cola cola cabecera cola cabecera

  8. Cola • Crear cola Al crear una lista, se crean el nodo cola y el nodo cabecera. Ambos tienen como dato null y como siguiente null. cola cabecera

  9. W Cola • Meter( La cola está vacía) • 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 • El campo siguiente del nodo cola pasa de ser null a ser el nodo que estamos insertado cola cabecera cola cabecera

  10. W W X Cola • Meter( La cola no está vacía) • Se crea un nuevo nodo con el dato que se desee colocar y con siguiente, al siguiente del nodo cabecera • El campo siguiente del nodo cabecera pasa de ser null a ser el nodo que estamos insertado cola cabecera cola cabecera

  11. W X X Cola • Sacar cola cabecera cola cabecera

  12. Cola • Imprimir datos

  13. Cola • Está una cola vacía? Cuando la cola está vacía el campo siguiente de la cabecera es null y el campo siguiente de la cola es null cola cabecera

  14. Cola 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 cuál es el nodo con el que se enlaza

  15. Cola Al crear una lista, se crean el nodo cola y el nodo cabecera. Ambos tienen como dato null y como siguiente null. class Cola{ Nodo cabecera; Nodo cola; Cola() { cabecera=new Nodo(null); cola=new Nodo(null); } }

  16. Cola public boolean estaVacia(){ if (cabecera.siguiente==null) { return true; } else { return false; } } • Está una cola vacía? • Cuando la cola está vacía el campo siguiente de la cabecera es null. El campo siguiente de la cola también es null

  17. Cola void meter(Object o) { Nodo nuevo=new Nodo(null); if ( estaVacia() ) { nuevo=new Nodo(o); nuevo.siguiente=null; cabecera.siguiente=nuevo; cola.siguiente=nuevo; } • 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 • El campo siguiente del nodo cola pasa de ser null a ser el nodo que estamos insertado

  18. Cola else { nuevo=new Nodo(o); nuevo.siguiente=cabecera.siguiente; cabecera.siguiente=nuevo; } } • Se crea un nuevo nodo con el dato que se desee colocar y con siguiente, al siguiente del nodo cabecera • El campo siguiente del nodo cabecera pasa de ser null a ser el nodo que estamos insertado

  19. Cola public void sacar() { Nodo borrar=cola.siguiente; if(cabecera.siguiente==cola.siguiente){ cabecera.siguiente=null; cola.siguiente=null; } else{ Nodo aux=cabecera; while( aux.siguiente!=borrar) aux=aux.siguiente; aux.siguiente=null; cola.siguiente=aux; } }

More Related