Está en la página 1de 8

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ

FACULTAD DE INGENIERÍA DE SISTEMAS


COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIÓN Y SIMULACIÓN DE
SISTEMAS

LABORATORIO N°6.
ESTRUCTURAS DE DATOS LINEALES:
COLA (ALMACENAMIENTO CONTIGUO)

ESTUDIANTES:
José Rivas, Kevin Gonzalez

FACILITADORA:
Ing. Jacqueline S. de Ching

ASIGNATURA:
Estructura de Datos I

MÓDULO I:
Estructura de datos fundamentales y lineales

CAPÍTULO 2:
Estructura de datos lineales

FECHA DE ASIGNACIÓN:
Semana 7

A. OBJETIVO:
 Aplicar las estructuras primitivas y simples en el desarrollo de un programa en lenguaje C o C++.
 Aplicar las operaciones de cadenas de lenguaje C o C++. B. RECURSOS:
 Computador
 Compliador Code block, DEV, C++. C. INSTRUCCIONES:
 El trabajo debe ser entregado a través de la plataforma Moodle en
http://ecampus.utp.ac.pa/moodle/  Trabajar en grupo de 2. D. RÚBRICA:
Este laboratorio tendrá una puntuación total de 100, donde la evaluación se basada en los aspectos de
excelente, bueno, regular, deficiente. Los puntos que se evaluará en la rúbrica se muestran en la tabla:

N. Aspectos Para Evaluar


Excelente Bueno Regular Deficiente
1 CONTENIDO DE ACUERDO CON LO SOLICITADO EN EL ENUNCIADO
(9) (7) (5) (0)

a. Respuesta 1 (9 pts.)

b. Respuesta 2 (9 pts.)

c. Respuesta 3 (9 pts.)

d. Respuesta 4 (9 pts.)

e. Respuesta 5 (9 pts.)

f. Respuesta 6 (9 pts.)

g. Respuesta 7 (9 pts.)

h. Respuesta 8 (9 pts.)

i. Respuesta 9 (9 pts.)

j. Respuesta 10 (9 pts.)

Excelente Bueno Regular Deficiente


PÁGINA DE PRESENTACIÓN – (10 puntos)
(10) (8) (6) (0)
2
k. Cumple con todos los parámetros dados en clase

E. ENUNCIADO: Transcriba el programa dado:


#include <stdlib.h>

#include <conio.h>

#include <stdio.h>
#define maxtam 4

struct { int items[maxta


m]; int front_c;
int final_c;

}s_cola;

//(Agregar elemento) void agregar(int


elemento){
s_cola.items[++s_cola.final_c]=elemento;

//(Eliminar elemento) int eliminar(){


return s_cola.items[++s_cola.front_c];

//Cola Vacía int c_vacia(){ if


(s_cola.front_c==s_cola.final
_c)

return
1; else
return
0;

//Error Underflow
(Subdesbordamiento) int

error_underflow(){ if (c_vacia()) return


1; else return 0;

//Cola llena int c_llena(){


if
(s_cola.final_c==maxtam
-1) return 1; else return
0;

//Error Overflow (Desbordamiento)

int
error_overflo
w(){ if
(c_llena())
return 1; else
return 0;

void mostrar (){

int i;

printf("Final--> %d\n",s_cola.final_c);
for (i = 0; i<=maxtam-1; i++)
printf("%d\n",s_cola.items[i]);
printf("Front--> %d\n", s_cola.front_c);
getch();

void IniciaCola() {
s_cola.front_ c=-1;
s_cola.final_c=-1;

printf("Cola Iniciada \n");

int main(){ int

item=NULL, opcion;

char opc;
IniciaCola()
; do{

printf("\n\tEstructura Cola maximo=


%d",maxtam); printf("\nMenu\n");
printf("\n1.Agregar"); printf("\n2.Eliminar"); if
(c_vacia())
printf("\n\tEstado actual: Cola vacia!");
else if (c_llena())

printf("\n\tEstado actual: Cola llena!");


else

printf("\n\tEstado actual: %d espacios disponibles",(maxtam)-s_cola.final_c);


printf("\n3.Mostrar Cola");

printf("\n4.Salir");

printf("\n\nSeleccione una
opcion: "); scanf("%d",&opcion);
switch(opcion){ case 1:
if (error_overflow())

printf("\nError: Overflow!\n\t(La Cola ya esta llena, no se puede agregar otro elemento)\n");


else{

printf("\nIngrese el numero para agregar a la


Cola \n"); scanf ("%d",&item);
agregar(item);

mostrar ();

break; case
2:

if (error_underflow())

printf("\nError: Underflow!\n\t(La Cola esta vacia, no hay elemento que eliminar)\n");


else

item=eliminar(); mostrar();

printf("\nEl elemento eliminado fue %d


\n",s_cola.items[s_cola.front_c]); break; case 3:

mostrar(); case
4: exit(0);
default:

printf("\n\nNo seleccionaste una opcion, intenta de


nuevo.\n"); get ch(); system("cls"); return
main();

}
printf("\n\nDesea continuar trabajando con la Cola?\nSi (S)/No (N)\n\n"); opc=getch();

}while(opc=='S' || opc=='s'); return


0;

En una hoja en WORD coloque:


Pregunta 1. Coloque la captura de pantalla del programa y ejecución, sin agregar o eliminar elementos

Pregunta 2. Agregue un elemento a la Cola. Capture la pantalla de ejecución

Pregunta 3. Al agregar el elemento a la cola cuál es el valor de front y final.

Front = -1

Final = 0

Pregunta 4. Agregue otro elemento a la cola. Capture la pantalla de ejecución e indique el valor de front
y final
Front = -1 Final

=1

Pregunta 5. Elimine un elemento de la cola. Capture la pantalla de ejecución.

Pregunta 6. Explique lo que sucede con el arreglo cuando se elimina un elemento. Que valores tiene
front y final

Cuando se elimina un elemento del arreglo, este queda "vacío" y el siguiente elemento del arreglo
ocupa su lugar.

Front = 0

Final = 1

Pregunta 7. Agregue elementos hasta que la cola este llena. Capture la ejecución
Pregunta 8. Que sucede con front y final

El final apunta al último elemento y el Front apunta al primer elemento.

Pregunta 9. Elimine elementos de la cola hasta que este vacía. Capture la ejecución

Pregunta 10. Que pasa con los elementos del arreglo. Que valores tiene front y final.

Cuando se elimina un elemento de la cola, este deja de estar disponible para ser utilizado. Los
elementos restantes en la cola se reordenan para que el elemento siguiente en la cola ocupe el lugar del
elemento eliminado.

Front = 3

Final = 3

También podría gustarte