Está en la página 1de 7

Carátula para entrega de prácticas

Facultad de Ingeniería Laboratorio de docencia

Laboratorios de computación
salas A y B
EDGAR TISTA GARCÍA
Profesor:

Asignatura: ESTRUCTURA DE DATOS Y ALGORITMOS I

3
Grupo:

6
No de Práctica(s):

Nava Cruz Alejandro


Integrante(s):

2019-1
Semestre:

02/Oct/2018
Fecha de entrega:

Observaciones:

CALIFICACIÓN:
Guía práctica de estudio 06. Estructuras de datos lineales:
Cola circular y cola doble.

Objetivo:
Revisarás las definiciones, características, procedimientos y ejemplos de las estructuras
lineales Cola circular y Cola doble, con la finalidad de que comprendas sus estructuras y
puedas implementarlas.

Practica:
Ejercicio 1:

Lo que realiza la primera ejecución es agregar 2 valores al final de la cola ya declarados


desde el main, 11 y 12 respectivamente, lo que hace internamente es agregar el 11 a la
función encolar final, el cual primero revisa que haya espacio disponible para agregar, si
hay lugares disponibles, declara que este número se agregue a la primera posición
disponible, para después agregar al número 12 a la posición siguiente de la cola.

En la segunda ejecución se desencola ambos número, la primer instrucción para


desencolar al final lo que hace es declarar una condicional, en caso de que la cola este
vacía, está la notificara mandando un error, si no, aumenta el número de espacios
disponibles y borra el primer elemento, en este caso 11, la posición primera ahora pasa a
ser 0, y se continua, lo mismo pasa con el 12, se elimina y este se convierte en 0, lo que
imprime el programa es una cola de números 0, en donde el número de espacios
disponibles es 10, el primer índice se encuentra en el 1 y el segundo en 0, dando a
entender que la cola está vacía.

En la tercera ejecución se encolan 2 números al final, el 13 y el 14, estos se ejecutan de


la misma manera que en la primera ejecución, luego se agregan 2 valores al inicio de la
cola, lo que va a hacer esta función es mandar los valores a la función desencolar al
inicio, para primero revisar si la cola no está llena(si está llena, el programa lo notifica),
manda el primer valor que es 10 y lo coloca en la última posición de la cola, para después
mandar el valor 9 y encolarlo al inicio de esta, colocando al 9 en la posición anterior al 10.
Ejercicio 2:

En este programa solo se utilizaban las operaciones convencionales de una cola


(agregar al final y sacar al inicio) para realizar acciones propuestas en la misma hoja de
la práctica.
2.a. - Cuestionario (Caso de cola circular con 9 elementos)
1.- ¿Cuál es el contenido de la estructura?
Una cola de 9 elementos con las primeras 4 posiciones vacías, seguido de 4 con
elementos agregados anteriormente y una última posición vacía al final.

2.- ¿Cuántos elementos vacíos o disponibles hay en la estructura?


5 elementos vacíos

3.- ¿Cuál es el valor del índice “primero”?


Valor 55

4.- ¿Cuál es el valor del índice “último”?


Valor 85

En este programa se crea una cola la cual tendrá tamaño suficiente para almacenar 9
elementos, de los cuales en el main se encolan 7 (15, 25, 35, 45, 55, 65 y 75), para
después desencolar 3, agregar un valor más (85) y finalmente desencolar otro elemento, a
pesar de haber vaciado y dejado disponibles 3 posiciones, el programa continúo
agregándolo después del último valor (75), con esto se demuestra como tal la definición de
una cola.
2.b. - Cuestionario (Caso de cola circular con 5 elementos)
1.- ¿Cuál es el contenido de la estructura?
Una cola de 5 elementos con la primera posición con un valor, seguida de 3 con
valores vacíos para finalizar con otra con valor.

2.- ¿Cuántos elementos vacíos o disponibles hay en la estructura?


3 elementos vacíos

3.- ¿Cuál es el valor del índice “primero”?


Valor 55

4.- ¿Cuál es el valor del índice “último”?


Valor 85

En este caso se crea una cola con capacidad para 5 elementos, para agregar los 7
elementos, pero al momento de llegar a la última posición y querer agregar otro elemento,
el programa lanza el error declarado desde la función encolar (“ya está a su máxima
capacidad”), al enviar el error, estos valores agregados (65 y 75) se ignoran, para seguir
con las instrucciones del programa, lo siguiente que ocurre es que se desencolan 3
elementos, en este caso 15, 25 y 35. Lo que continua declarado en la función main para
su ejecución es encolar un último valor (85), el programa lo agrega en la siguiente
posición, que al ser una cola circular, se envía a la posición 1; finalmente se desencola un
último valor (45) y se imprime en pantalla.
Ejercicio 3:

En este ejercicio teníamos que declarar las instrucciones en el main para que la cola
resultara de la misma manera que los 3 estados mostrados anteriormente, suponiendo a la
posición 1 como la señalada y utilizando las operaciones para una cola doble.

Estado 1:
Para este estado encolamos al inicio el valor 101 utilizando la función “encolarInicio” (este
se agregó a la posición 1), para proseguir encolando al final los otros 4 elementos con la
función “encolarFinal” (valores 102, 103, 104 y 105 respectivamente) y finalmente
desencolar al inicio el valor 101 (uso de la función “desencolarInicio”) e imprimir.

Estado 2:
Para el segundo estado lo primero que se hace es desencolar el primer valor (el cual era
102) para proseguir encolando al inicio 3 valores, estos son 97, 98 y 99, pero al encolarlos
en ese orden, por la definición de la función “encolarInicio”, estos se agregarán de manera
“inversa”, así que se declaran de manera descendente para que se impriman de manera
correcta a como se desea, cabe destacar que el 98 y 99 entran en las primeras 2
posiciones de la cola, y al no quedar espacio arriba de ellos y por definición de una cola
circular, el valor 97 paso a la posición 8, siendo este de igual manera el índice primero; se
continuó desencolando al final para eliminar al último elemento de la cola (valor 105) y
encolando al final 2 elementos (valores 120 y 121 respectivamente), se imprime el
resultado en pantalla.
Estado 3:
Para este estado, lo primero que se hace es desencolar al Inicio los 3 valores agregados
en la función utilizando la función desencolarInicio, como se pudo observar en el ejemplo
anterior, el valor 97 tenía asignado el índice primero, siendo este el primero en borrarse,
para proseguir con el 98 y el 99 respectivamente, finalmente se agregó un elemento con
valor 122 al final de la cola, finalmente se imprimió para mostrar la cola en pantalla.

Conclusiones:
Aprendimos como se utilizan y se aplican las estructuras de cola circular y cola doble, la
diferencia que hay entre ambas y lo que se puede realizar con cada una, ya que tienen
funciones específicas las cuales se pueden usar en conjunto. Se comprende de manera
eficiente como se tiene que usar y aplicar cada una de las funciones de la estructura; los
ejercicios propuestos fueron buenos y claros para aplicar las definiciones básicas de
estos, casi no se tuvo acceso a la biblioteca “colaDoble.h”, ya que está estaba declarada
de manera completa para no requerir de más elementos que con los que ya contábamos.

La guía de nueva cuenta no contaba con ejemplos para aplicarlos en el compilador, pero
con la teoría vista en clase fue suficiente para entender el funcionamiento de estas,
además de que no diferían demasiado a lo que fue las colas simples.

También podría gustarte