Lo que pide el código:
Escriba un programa que simula una cola. Tamaño
máximo 100. Llena la cola con al menos 25
elementos, representados cada uno por un numero
entero.
a)
Escriba una función que devuelve el tamaño de la
cola. Elementos que se encuentran en la cola.
b)
Escriba una función que devuelve la posición del valor
más alto en la cola
c)
Escriba una función que indica cuantos pasos le falta
al número más alto para salir de la cola
Adjunto el código que yo realice.
Espero contar con su ayuda.
Muchas Gracias
Código:
#include <iostream>
using namespace std;
const int maxcola = 100;
struct MiCola {
int elementos[maxcola];
int front;
int back;
}cola[maxcola];
int CrearCola(MiCola &queue);
bool ColaLlena(MiCola &queue);
bool ColaVacia(MiCola &queue);
int LlenarCola(MiCola &queue ,int entradas);
int VaciarCola(MiCola &queue,int salidas);
int main() {
MiCola entrada, salida,queue;
char op;
int i=0,ele;
CrearCola(queue);
cout << "Deseas ingresar datos (S/N)? ";
cin >> op;
while ((op == 's' || op == 'S') && (!(ColaLlena(queue)))) {
cout << "Ingresa elemento: ";
cin >> ele;
LlenarCola(queue,ele);
if (!(ColaLlena(queue))) {
cout << "Deseas ingresar datos (S/N)? ";
cin >>op;
}
}
while (!(ColaVacia(queue))) {
LlenarCola(queue, salida);
cout << "---------Elementos--------" << endl;
cout <<salida.elementos;
cout << endl;
}
cin.get();
cin.ignore();
}
int CrearCola(MiCola &queue) {
queue.front = maxcola - 1;
queue.back = maxcola - 1;
}
bool ColaLlena(MiCola &queue) {
if (queue.front == (queue.back + 1) % maxcola)
return 1;
else
return 0;
}
int LlenarCola(MiCola &queue, int entradas) {
queue.back = (queue.back + 1) % maxcola;
queue.elementos[queue.back] = entradas;
}
bool ColaVacia(MiCola queue) {
if (queue.front == queue.back) return 1;
else return 0;
}
int VaciarCola(MiCola &queue, int salidas) {
queue.front = (queue.front + 1) % maxcola;
salidas = queue.elementos[queue.front];
}