#include <iostream.h>
#include <stdlib.h>
#include <cstdlib>
int x=0,val=0,num=0,base=0;
typedef struct datos{
        int dato;
        struct datos *siguiente;
        }tipoNodo;
 
typedef tipoNodo *pNodo;
typedef tipoNodo *Pila;
Pila *pila;
 
void push (Pila *l,int val);
int pop (Pila *l);
void convertir (int num,int base);
 
main (){
     Pila pila = NULL;
     cout << "Codigo binario de un numeronDigita el numeron";
     cin>>num;
     cout << "Digita la base que deseas(2-5)n";
     cin >>base;
     convertir (num,base);}
     
void push(Pila *pila,int val){
     pNodo nuevo;
     nuevo 
= (pNodo
) malloc (sizeof(tipoNodo
));     nuevo->dato = val;
     nuevo->siguiente =*pila;
     *pila = nuevo;
     }
 
int pop(Pila *pila){
     pNodo aux;
     int v;
     aux = *pila;
     if (!aux) cout<<"npila vacian";
     *pila = aux->siguiente;
     v = aux->dato;
     return v;
     }
 
void convertir(int num,int base){
                  int aux=0;
                  aux=num;
                  do{
                  val=num%base;
                  num=num/base;
                  push(&pila,val);
                  }while (num>base);
                  cout<<"el numero es:" <<num;
                  do{
                  x=pop(&pila);
                  cout<<x;
                  }while (*pila!=NULL);
}