Ya lo solucione
Código
#include <iostream> #include <stdlib.h> #include <math.h> using namespace std; const int MAX=20; typedef int contenedor[MAX]; typedef struct tcola{ contenedor datos; int final, frente; }; void init_queue(tcola &q); void push_queue(tcola &q, int nuevo); bool full_queue(tcola q); bool empty_queue(tcola q); int pop_queue(tcola &q); int top_queue(tcola q); int bottom_queue(tcola q); int next(int indice); int main() { int numero, inverso=0, i=-1; tcola q; init_queue(q); cout<<"Ingrese numero: "; cin>>numero; while(numero>0){ push_queue(q,numero%10); numero/=10; i++; } while(empty_queue(q)==false){ inverso+=pop_queue(q)*pow(10.0.i); i--; } cout<<"Inverso: "<<inverso<<endl; system("pause"); } void init_queue(tcola &q) { q.final=MAX-1; q.frente=MAX-1; } void push_queue(tcola &q, int nuevo) { if(full_queue(q)==true) cout<<"COLA LLENA"<<endl; else{ q.final=next(q.final); q.datos[q.final]=nuevo; } } bool full_queue(tcola q) { return next(q.final)==q.frente; } bool empty_queue(tcola q) { return q.frente==q.final; } int pop_queue(tcola &q) { int aux; if(empty_queue(q)==true) aux=-1; else{ q.frente=next(q.frente); aux=q.datos[q.frente]; } return aux; } int top_queue(tcola q) { int aux; if(empty_queue(q)==true) aux=-1; else{ aux=q.datos[next(q.frente)]; } return aux; } int bottom_queue(tcola q) { int aux; if(empty_queue(q)==true) aux=-1; else{ aux=q.datos[q.final]; } return aux; } int next(int indice) { if(indice==MAX-1) indice=0; else indice++; return indice; }