La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Estructuras de Datos y Algoritmos TDA Cola. TDA Una Cola es una arreglo lineal de elementos con las siguientes operaciones: –Crear una cola vacía –determinar.

Presentaciones similares


Presentación del tema: "Estructuras de Datos y Algoritmos TDA Cola. TDA Una Cola es una arreglo lineal de elementos con las siguientes operaciones: –Crear una cola vacía –determinar."— Transcripción de la presentación:

1 Estructuras de Datos y Algoritmos TDA Cola

2 TDA Una Cola es una arreglo lineal de elementos con las siguientes operaciones: –Crear una cola vacía –determinar si una cola está vacía –añadir un elemento –remover el elemento más antiguo –remover todos los elementos –devolver el elemento más antiguo

3 public interface QueueInterface { public boolean isEmpty(); // Determines whether a queue is empty. // Precondition: None. // Postcondition: Returns true if the queue is empty; // otherwise returns false. public void enqueue(Object newItem) throws QueueException; // Adds an item at the back of a queue. // Precondition: newItem is the item to be inserted. // Postcondition: If the operation was successful, newItem // is at the back of the queue. Some implementations // may throw QueueException if newItem cannot be added // to the queue. public Object dequeue() throws QueueException; // Retrieves and removes the front of a queue. // Precondition: None. // Postcondition: If the queue is not empty, the item // that was added to the queue earliest is returned and // the item is removed. If the queue is empty, the // operation is impossible and QueueException is thrown.

4 public void dequeueAll(); // Removes all items of a queue. // Precondition: None. // Postcondition: The queue is empty. public Object peek() throws QueueException; // Retrieves the item at the front of a queue. // Precondition: None. // Postcondition: If the queue is not empty, the item // that was added to the queue earliest is returned. // If the queue is empty, the operation is impossible // and QueueException is thrown. } // end QueueInterface

5 Implantación dinámica con referencias 2417 firstNode lastNode Con dos amarres:

6 Implantación dinámica con referencias 2417 lastNode Con un amarre:

7 Insertar 2417 lastNode 3 newNode Node newNode = new Node(); newNode.setInfo(3);

8 Insertar 2417 lastNode 3 newNode newNode.setNext(lastNode.getNext())

9 Insertar 2417 lastNode 3 newNode lastNode.setNext(newNode)

10 Insertar 2417 lastNode 3 newNode lastNode = newNode

11 Insertar 2417 lastNode 3 fine

12 Remover 2417 lastNode Se elimina este

13 Remover 2417 lastNode lastNode.setNext(lastNode.getNext().getNext());

14 Reusando Listas

15 Remover 2417 lastNode Java lo elimina

16 Implantación estática 2417 3 back 0 1 2 3 4 5... M-1 M 0 front

17 Insertar 3 24173 4 back 0 1 2 3 4 5... M-1 M 0 front cambia ron

18 Remover 24173 4 back 0 1 2 3 4 5... M-1 M 0 front

19 Remover 24173 4 back 0 1 2 3 4 5... M-1 M 1 front cambió

20 Otro estado que representa la misma cola 17 1 back 24 0 1 2 3 4 5... 48 49 4848 front Remover: front = (front + 1) % 50; Insertar: back = (back + 1)%50; A[back] = info;

21 Estructuras de Datos y Algoritmos TDA Cola: Aplicaciones

22 Amortiguadores (buffers) Leer caracteres de un teclado (sistema operativo) –los caracteres tecleados poeden ser entrados en una fila –el sistema los puede ir sacando mientras sean necesitados La lectura de paquetes de información en redes

23 En el Metro de Boston...

24 Palíndromes Es una palabra que lee igual al derecho y al revés (radar) estiba devuelve elementos al revés fila lo devuelve en orden algoritmo: –meter caracteres en fila f y estiba e –sacarlos uno a uno de la fila y la estiba y compararlos –si todos son iguales es un palíndrome

25 Simulaciones Muchas simulaciones involucran eventos que deben ser procesados en el orden que ocurren (sugiere cola) El tiempo transcurrido se simula con un ciclo. Cada iteración representa una cantidad fija de tiempo hay una fila de eventos por procesar a cada iteración se generan y procesan eventos se usan criterios estadísticos para generar eventos

26 Simulaciones (ejemplo) Flujo de clientes en un banco eventos generados: llegadas, salidas Estructuras de datos: una cola de eventos L Hora de llegada Tiempo de transacción S Hora de salida Evento de llegada Evento de salida Evento

27 Palindromes Codigo que compara: while(!e.isEmpty()) if(e.pop() != f.remove()) return false; return true;

28 ListaDeEventos como TDA Nodos como los de la pasada transparencia Operaciones: –createEventList( ) // crea lista vacía –eventListIsEmpty( ) // determina si vacía –eventListInsert( ) // añade evento a la lista de // modo que esté ordenada // por hora –eventListDelete( ) // elimina primer evento –eventListRetrieve( ) // devuelve primer evento


Descargar ppt "Estructuras de Datos y Algoritmos TDA Cola. TDA Una Cola es una arreglo lineal de elementos con las siguientes operaciones: –Crear una cola vacía –determinar."

Presentaciones similares


Anuncios Google