Tarea 3 de Algoritmos y Estructuras de Datos

Trimestre 2013 Otoño
Entrega: 19 de septiembre de 2013 a las 22:00

Una doble cola es un tipo de datos abstracto que permite insertar y eliminar datos por ambos extremos. En esta tarea implementarás una doble cola estática de letras con verificación de errores (no se permite eliminar datos de una doble cola vacía y no se permite agregar datos a una doble cola llena).

Escribe un programa llamado dequeNN.c (donde NN es tu número de lista) que:
  1. Lea el tamaño T de la doble cola estática y la inicialize.
  2. Lea y efectúe M operaciones en la doble cola.
  3. Escriba el resultado de esas operaciones.
La entrada comenzará con los valores de T y M, después aparecerán las M operaciones que debes hacer. Las operaciones estarán representadas de esta forma:
  1. La inserción por la izquierda se representará por el carácter 'i' seguido de la letra que se desea insertar.
  2. La inserción por la derecha se representará por el carácter 'd' seguido de la letra que se desea insertar.
  3. La eliminación por la izquierda se representará por el carácter 'I'.
  4. La eliminación por la derecha se representará por el carácter 'D'.
El resultado de cada operación será 0 @ (si hubo error) o 1 seguido de la letra que se insertó o eliminó (si hubo éxito).

En el primer ejemplo de abajo se declara una cola doble de tamaño 3 y se hacen 5 operaciones, la primera de las cuales representa un error.

Puedes suponer que 1 <= T, M <= 1000.

Entrada 1
Salida 1
Entrada 2
Salida 2
3 5
I
i z
d w
D
D
0 @
1 z
1 w
1 w
1 z
3 5
i z
D
D
i w
I
1 z
1 z
0 @
1 w
1 w

Guía para usar su cuenta de callix y enviar la tarea.