Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porJosé María Jiménez Campos Modificado hace 10 años
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
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.