Colas
Pila
1
UVM
3.1 Objetivos
El estudiante manejará el tad Cola,
sobre memoria estática
Pila
3
UVM
3.2 Temas a Cubrir
Definición
Operaciones sobre Colas





Encolar (enqueue)
Desencolar (dequeue)
Primero (front)
Último (rear)
Vacía? (empty)
Implementación de Colas
Pila
4
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.
Pila
5
UVM
3.4 Operaciones sobre Colas
Encolar (enqueue)
Desencolar (dequeue)
Primero (front)
Último (rear)
Vacía? (empty)
Pila
6
UVM
3.4.1 Encolar (enqueue)
Esta operación sirve para insertar un
elemento e en la cola q
enqueue(Q, e)
Pila
7
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 cola
v = dequeue(Q);
Pila
8
UVM
3.4.3 Primero (front)
La operación front(Q) devuelve el valor
del primer elemento de la cola Q.
v=front(Q)
Pila
9
UVM
3.4.4 Último (rear)
La operación rear(Q) devuelve el valor
del último elemento de la cola Q.
v=rear(Q)
Pila
10
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
Pila
11
UVM
3.4.5 Ejemplos
Cola de Impresión
Cola de Procesos en un S. O.
Mensajes de voz en una contestadora
telefónica
Pila
12
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;
Pila
13
UVM
3.5.1 enqueue
void enqueue(struct queue *Q, int e){
Q->items[++Q->rear]=e;
}
Pila
14
UVM
3.5.2 dequeue
int dequeue(struct queue *Q){
return Q->items[++Q->front];
}
Pila
15
UVM
3.5.3 front
int front (struct queue *Q){
return Q->item[Q->front];
}
Ó
int front(struct queue *Q){
return Q->front;
}
Pila
16
UVM
3.5.4 rear
Pila
17
UVM
3.5.5 Vacía?
Pila
18
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
Pila
19
UVM
Descargar

uvmnet.omargaona.com