1 / 31

Programación II Colas

Igor Santos Grueiro. Programación II Colas. A diario hacemos c olas. para comer. para ir al cine. En nuestro ordenador también hay colas. Una cola es una estructura formada por una secuencia de 0 a N elementos, en l a que la extracción de elementos se hace en orden de inserción.

avery
Download Presentation

Programación II Colas

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. Igor Santos Grueiro Programación IIColas

  2. A diario hacemos colas

  3. para comer

  4. para ir al cine

  5. En nuestro ordenador también hay colas

  6. Una cola es una estructura formada por una secuencia de 0 a N elementos, en la que la extracción de elementos se hace en orden de inserción Encolar Desencolar Cola Objeto Objeto

  7. En un cola se recoge el extremo inicial de la cola Un elemento nuevo se inserta por el extremo final de la cola Es un tipo de estructura FIFO (First Input First Output)

  8. Podemos hacer variasoperaciones:

  9. Crear una cola

  10. Vaciar una cola Objeto Objeto

  11. Comprobar si una cola está Vacía NO Sí Objeto Objeto

  12. Obtener una copia del primer elemento Objeto Objeto Objeto

  13. Insertar un elemento en la cola Se conoce como encolar o “put” Objeto Objeto Objeto

  14. Recoger el primer elemento y eliminarlo de la cola Se conoce como desencolar o “get” Objeto Objeto

  15. Construyamos una cola

  16. Nos hace falta una estructura que enlace un elemento al siguiente Nodo Nodo siguiente Object elemento

  17. } public class NodoCola{ private Object elemento; private NodoColasiguiente; public NodoCola(Object elemento, NodoColasiguiente){ this.elemento = elemento; this.siguiente = siguiente; } public NodoCola(Object elemento){ this.elemento = elemento; this.siguiente = null; } public Object getElemento(){ returnelemento; } publicNodoColagetSiguiente(){ returnsiguiente; } public void insertarSig(Object x) { NodoColanuevoNodo= newNodoCola(x, this.siguiente); this.siguiente= nuevoNodo; } }

  18. Ahora la clase Cola

  19. } public class Cola{ private NodoColaprimero; private NodoColaultimo; private intcont; public Cola(){ this.primero = null; this.ultimo= null; this.cont = 0; } // … }

  20. } Para vaciar se ponen a null el primero y el último // … public vaciar(){ this.primero = null; this.ultimo= null; this.cont = 0; } // …

  21. Para comprobar si está vacía miramos si el primero es null //… publicbooleanestaVacia(){ return(this.primero == null); } //…

  22. Para insertar un elemento se añade un elemento como siguiente del último nodo de la cola //… public void put(Object x){ if (primero == null){ this.primero= new NodoCola(x); this.ultimo= primero; }else{ this.ultimo.insertarSiguiente(x); this.ultimo= this.ultimo.getSiguiente(); } this.cont++; } //…

  23. Primero Cima Último Cima

  24. public Object cima(){ return v[cont-1]; } Para devolver el elemento al frente se devuelvo el primero //… public Object frente(){ if (this.primero !=null) return this.primero.getElemento(); else return null; } //…

  25. public Object cima(){ return v[cont-1]; } Para borrar el elemento al frente se pone el primero al valor siguiente del primero previo //… public void borrar(){ if (this.primero !=null){ this.primero = this.primero.getSiguiente(); this.cont--; } } //…

  26. Primero Cima Último Cima

  27. public Object cima(){ return v[cont-1]; } Para desencolar el elemento al frente se recupera y se borra el elemento primero //… public Object get(){ if (this.primero == null) return null; else { this.cont--; NodoColanodoTmp = this.primero; this.primero = this.primero.getSiguiente(); returnnodoTmp.getElemento(); } } //…

  28. Primero Cima Último Cima Devolvemos el objeto dentro del nodo eliminado

  29. public Object cima(){ return v[cont-1]; } También, podemos recuperar el número de elementos insertados en la cola //… public inttamanyo(){ return this.cont; } //…

  30. Ya comprendemos las colas

  31. Ejercicio palíndromos Diseñar un programa que determine si una frase introducida por teclado es o no palíndroma. Una frase es palíndroma si la secuencia de caracteres de izquierda a derecha en la frase es la misma que de derecha a izquierda. En esta comprobación no se tendrá en cuenta los caracteres blancos que separan las palabras de la frase, ni se diferenciaran las mayúsculas de las minúsculas. El programa deberá hacer uso en este programa de una Pila y de una Cola para verificar que la frase es o no palíndroma.

More Related