Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <sstream>
- using namespace std;
- typedef struct nod{
- string dato;
- nod*sgte;
- }Pila;
- void push(int numero,int numeroaux,Pila*&p,string operador,string hexadecimal[16]){
- int resto,i,j,termino;
- if (operador=="b")
- termino = 2;
- else
- termino = 16;
- for(i = 1 ; i <= numero; i++){ // Determina las divisiones que se haran
- numeroaux = numeroaux/ termino;
- if(numeroaux == 1 && operador == "b"){
- break;
- }
- else if(numeroaux < 16 && operador != "b"){
- break;
- }
- }
- for(j = 1 ; j <= i; j++){ // Realiza las operaciones para la conversión
- Pila*pila =new Pila;
- resto = numero % termino;
- pila->dato = hexadecimal[resto];
- numero = numero / termino;
- pila->sgte = pila;
- }
- Pila* pila = new Pila;
- pila->dato=hexadecimal[numero];
- };
- string pop(Pila *&pila){
- // Crea un nuevo nodo
- Pila *p;
- Pila *next;
- string x;
- p = NULL;
- next = pila;
- while (!pila_vacia(next)){
- // El nuevo nodo va a apuntar al primer nodo de la lista ligada
- x = next->dato;
- // Ahora el segundo nodo de la lista ligada va a ser el primero
- p = next;
- // Borra el primer nodo de la lista ligada
- cout<<"x "<<next->dato<<endl;
- delete(p);
- cout<<"xsawda"<<endl;
- // Regresa el valor que contenía el nodo que se eliminó
- cout << x << endl;
- }
- return x;
- };
- int main(){
- int salida;
- salida = 1;
- Pila *pila = NULL;
- string hexadecimal[16]={"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};
- while(salida!=0){
- string orden,operador;
- int numero;
- cout<<"Ingrese una frase: ";
- getline(cin,orden);
- stringstream string_actual(orden);
- string_actual>>operador; //obtenemos el operador (b si es binario, h si es hexadecimal)
- string_actual>>numero;
- if(orden!="x 0"){
- if(operador=="b"){
- push(numero,numero,pila,operador,hexadecimal);
- pop(pila);
- }
- else{
- push(numero,numero,pila,operador,hexadecimal);
- //while (pila_vacia(pila) != 1)
- //pop(pila);
- }
- }
- else{
- salida=0;
- }
- }
- return 0;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement