pila1uvm colas. pila2uvm pila3uvm 3.1 objetivos el estudiante manejará el tad cola, sobre memoria...

18
Pila 1 UVM Colas

Upload: tadeo-olgin

Post on 11-Apr-2015

107 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Pila1UVM Colas. Pila2UVM Pila3UVM 3.1 Objetivos El estudiante manejará el tad Cola, sobre memoria estática

Pila 1 UVM

Colas

Page 2: Pila1UVM Colas. Pila2UVM Pila3UVM 3.1 Objetivos El estudiante manejará el tad Cola, sobre memoria estática

Pila 3 UVM

3.1 Objetivos

El estudiante manejará el tad Cola, sobre memoria estática

Page 3: Pila1UVM Colas. Pila2UVM Pila3UVM 3.1 Objetivos El estudiante manejará el tad Cola, sobre memoria estática

Pila 4 UVM

3.2 Temas a Cubrir

DefiniciónOperaciones sobre Colas Encolar (enqueue) Desencolar (dequeue) Primero (front) Último (rear) Vacía? (empty)

Implementación de Colas

Page 4: Pila1UVM Colas. Pila2UVM Pila3UVM 3.1 Objetivos El estudiante manejará el tad Cola, sobre memoria estática

Pila 5 UVM

3.3 Definición

Una cola (queue en inglés) es una estructura de datos en la que el modo de acceso a sus elementos es de tipo FIFO (del inglés First In First Out, primero en entrar, primero en salir) que permite almacenar y recuperar datos.

Page 5: Pila1UVM Colas. Pila2UVM Pila3UVM 3.1 Objetivos El estudiante manejará el tad Cola, sobre memoria estática

Pila 6 UVM

3.4 Operaciones sobre Colas

Encolar (enqueue)Desencolar (dequeue)Primero (front) Último (rear)Vacía? (empty)

Page 6: Pila1UVM Colas. Pila2UVM Pila3UVM 3.1 Objetivos El estudiante manejará el tad Cola, sobre memoria estática

Pila 7 UVM

3.4.1 Encolar (enqueue)

Esta operación sirve para insertar un elemento e en la cola qenqueue(Q, e)

Page 7: Pila1UVM Colas. Pila2UVM Pila3UVM 3.1 Objetivos El estudiante manejará el tad Cola, sobre memoria estática

Pila 8 UVM

3.4.2 Desencolar (dequeue)

Se usa para retirar un elemento de la cola Q y asignarlo a una variable del mismo tipo que el tipo de los elementos de la colav = dequeue(Q);

Page 8: Pila1UVM Colas. Pila2UVM Pila3UVM 3.1 Objetivos El estudiante manejará el tad Cola, sobre memoria estática

Pila 9 UVM

3.4.3 Primero (front)

La operación front(Q) devuelve el valor del primer elemento de la cola Q. v=front(Q)

Page 9: Pila1UVM Colas. Pila2UVM Pila3UVM 3.1 Objetivos El estudiante manejará el tad Cola, sobre memoria estática

Pila 10 UVM

3.4.4 Último (rear)

La operación rear(Q) devuelve el valor del último elemento de la cola Q. v=rear(Q)

Page 10: Pila1UVM Colas. Pila2UVM Pila3UVM 3.1 Objetivos El estudiante manejará el tad Cola, sobre memoria estática

Pila 11 UVM

3.4.5 Vacía? (empty)

Toma como argumento una estructura del tipo cola (queue) y devuelve un valor booleano: true si la cola está vacía o false si la cola tiene al menos un elemento

Page 11: Pila1UVM Colas. Pila2UVM Pila3UVM 3.1 Objetivos El estudiante manejará el tad Cola, sobre memoria estática

Pila 12 UVM

3.4.5 Ejemplos

Cola de ImpresiónCola de Procesos en un S. O.Mensajes de voz en una contestadora telefónica

Page 12: Pila1UVM Colas. Pila2UVM Pila3UVM 3.1 Objetivos El estudiante manejará el tad Cola, sobre memoria estática

Pila 13 UVM

3.5 Implementación de Colas

#define MAXQUEUE 100

struct queue {

int items[MAXQUEUE];

int front, rear;

} ;

struct queue Q;

Q.front = Q.rear = -1;

Page 13: Pila1UVM Colas. Pila2UVM Pila3UVM 3.1 Objetivos El estudiante manejará el tad Cola, sobre memoria estática

Pila 14 UVM

3.5.1 enqueue

void enqueue(struct queue *Q, int e){

Q->items[++Q->rear]=e;

}

Page 14: Pila1UVM Colas. Pila2UVM Pila3UVM 3.1 Objetivos El estudiante manejará el tad Cola, sobre memoria estática

Pila 15 UVM

3.5.2 dequeue

int dequeue(struct queue *Q){

return Q->items[++Q->front];

}

Page 15: Pila1UVM Colas. Pila2UVM Pila3UVM 3.1 Objetivos El estudiante manejará el tad Cola, sobre memoria estática

Pila 16 UVM

3.5.3 front

int front (struct queue *Q){

return Q->item[Q->front];

}

Ó

int front(struct queue *Q){

return Q->front;

}

Page 16: Pila1UVM Colas. Pila2UVM Pila3UVM 3.1 Objetivos El estudiante manejará el tad Cola, sobre memoria estática

Pila 17 UVM

3.5.4 rear

Page 17: Pila1UVM Colas. Pila2UVM Pila3UVM 3.1 Objetivos El estudiante manejará el tad Cola, sobre memoria estática

Pila 18 UVM

3.5.5 Vacía?

Page 18: Pila1UVM Colas. Pila2UVM Pila3UVM 3.1 Objetivos El estudiante manejará el tad Cola, sobre memoria estática

Pila 19 UVM

Tarea # 3 (entrega 7 marzo 2009)Escriba un programa en C que represente la lista de espera para la atención de clientes en un centro de atención al público. Se debe guardar el nombre, turno, teléfono del cliente. El programa debe capturar a los clientes según llegan, borrarlos cuando son atendidos y desplegar la lista de los que faltan de atender