Ver Mensaje Individual
  #18 (permalink)  
Antiguo 26/10/2010, 00:30
vnvnation
 
Fecha de Ingreso: marzo-2009
Mensajes: 74
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Error conversion from `TipoPila**' to non-scalar type `TipoPila' requested

Bueno el de imprimir ya salio pero no se por que me muestra un 1 al final de del ultimo elemento de mi pila y el de contar aun no lo puedo correr bien

Código C++:
Ver original
  1. #include <iostream.h>
  2. #include <conio.h>
  3. #define MAX 2
  4. #define VACIO -1
  5. typedef int TipoTope;
  6. typedef char TipoElem;
  7. typedef struct TipoPila{
  8.          TipoTope Tope ;
  9.           TipoElem Elementos [MAX];
  10.           }Pila;
  11. void InicializarPila (TipoPila *Stack);
  12. int PilaLlena(TipoPila *Stack);
  13. int PilaVacia(TipoPila *Stack);
  14. void Push (TipoPila *Stack,TipoElem Elemen);
  15. int Pop (TipoPila *Stack,TipoElem *Elemen);
  16. int Imprimir (TipoPila Stack);
  17. int Contar (TipoPila Stack);
  18.  main ()
  19. {
  20. system ("color f9");
  21. TipoPila Pila;
  22. TipoTope Tope;
  23. TipoElem Elementos;
  24. int opcion1=0;
  25. while (opcion1!='s')
  26. {
  27. cout << "\n\nSELECCIONE UNA OPCION DE LAS SIGUIENTES:";
  28.  cout <<"\n1 Inicializar Pila: \n";
  29.   cout <<"2 Ingresar elementos a la pila: \n";
  30.   cout <<"3 Sacar elementos de la pila: \n";
  31.    cout <<"4 Imprimir elementos de la pila: \n";
  32.    cout <<"5 Contar elementos de la pila: \n";
  33.    cout <<"\n opcion:";
  34.  cin >> opcion1;
  35.  switch (opcion1)
  36. {
  37.        case 1:
  38.             InicializarPila(&Pila);
  39.        cout<<"Pila inicializada ...\n";
  40.        break;
  41.        case 2:
  42.              if(PilaLlena(&Pila)){
  43.           cout << "\nPila llena!!!!\n";}
  44.            else{
  45.      cout<<"Ingrese elementos a la pila:";
  46.      cin >> Elementos;
  47. Push(&Pila,Elementos);}
  48.      break;
  49.      case 3:
  50.           if(PilaVacia(&Pila)){
  51.           cout << "\nLa pila esta vacia ingrese elementos primero!!!!\n";
  52.           }
  53.           else{
  54.      Pop(&Pila,&Elementos);
  55.      cout <<"\n El elemento sacado de la pila es: "<<Elementos;
  56.      }
  57.      break;
  58.     case 4:
  59.           cout << Imprimir(Pila);
  60.           break;  
  61.       case 5:
  62.          cout <<  Contar(Pila);
  63.          
  64.           break;      
  65. }}getch ();}
  66. //InicializarPila
  67. void InicializarPila(TipoPila *Stack)
  68. {
  69.      Stack->Tope=VACIO;
  70.      }
  71. //PilaLlena
  72. int PilaLlena(TipoPila *Stack)
  73. {
  74.     return (Stack->Tope==MAX);
  75. }
  76. //PilaVacia
  77. int PilaVacia(TipoPila *Stack)
  78. {
  79.  return (Stack->Tope==VACIO);
  80. }
  81. //Push
  82. void Push (TipoPila *Stack,TipoElem Elemen)
  83. {
  84.  Stack->Tope++;
  85.  Stack->Elementos[Stack->Tope]=Elemen;
  86.  
  87.  }
  88.  //Pop
  89. int Pop (TipoPila *Stack,TipoElem *Elemen)
  90. {  
  91.  
  92.   *Elemen=Stack->Elementos[Stack->Tope];
  93.   Stack->Tope--;
  94.   return *Elemen;
  95.  }
  96.  //Imprimir
  97.  int Imprimir (TipoPila Stack)
  98.  {
  99. TipoElem Elementos;
  100. while (!PilaVacia(&Stack))
  101. {
  102.        Pop (&Stack,&Elementos);
  103.        cout <<"\n"<<Elementos;
  104. }        
  105.       }
  106. //Contar
  107. int Contar (TipoPila Stack)
  108. {
  109.  int contador=0;
  110.  TipoPila Aux;
  111.  TipoElem Elementos;  
  112.  InicializarPila (&Aux);
  113.  while (!PilaVacia(&Stack))
  114.  {
  115.  Pop(&Stack,&Elementos);
  116.  contador=contador+1;
  117.  Push(&Aux,Elementos);
  118.  
  119. }
  120. }

Edito

Creo que ya cuenta pero no se muy bien creo que hai un error por que tambien me aparece un 1 al fial de mi conteo

Código C++:
Ver original
  1. #include <iostream.h>
  2. #include <conio.h>
  3. #define MAX 2
  4. #define VACIO -1
  5. typedef int TipoTope;
  6. typedef char TipoElem;
  7. typedef struct TipoPila{
  8.          TipoTope Tope ;
  9.           TipoElem Elementos [MAX];
  10.           }Pila;
  11. void InicializarPila (TipoPila *Stack);
  12. int PilaLlena(TipoPila *Stack);
  13. int PilaVacia(TipoPila *Stack);
  14. void Push (TipoPila *Stack,TipoElem Elemen);
  15. int Pop (TipoPila *Stack,TipoElem *Elemen);
  16. int Imprimir (TipoPila Stack);
  17. int Contar (TipoPila Stack);
  18.  main ()
  19. {
  20. system ("color a9");
  21. TipoPila Pila;
  22. TipoTope Tope=0;
  23. TipoElem Elementos=0;
  24. int opcion1=0;
  25. while (opcion1!='s')
  26. {
  27. cout << "\n\nSELECCIONE UNA OPCION DE LAS SIGUIENTES:";
  28.  cout <<"\n1 Inicializar Pila: \n";
  29.   cout <<"2 Ingresar elementos a la pila: \n";
  30.   cout <<"3 Sacar elementos de la pila: \n";
  31.    cout <<"4 Imprimir elementos de la pila: \n";
  32.    cout <<"5 Contar elementos de la pila: \n";
  33.    cout <<"\n opcion:";
  34.  cin >> opcion1;
  35.  system ("cls");
  36.  switch (opcion1)
  37. {
  38.        case 1:
  39.        InicializarPila(&Pila);
  40.        cout<<"Pila inicializada ...\n";
  41.        getch ();
  42.        system ("cls");
  43.        break;
  44.        
  45.        case 2:
  46.        if(PilaLlena(&Pila)){
  47.        cout << "\nPila llena!!!!\n";}
  48.        else{
  49.        cout<<"Ingrese elementos a la pila:";
  50.        cin >> Elementos;
  51.        Push(&Pila,Elementos);
  52.        getch ();
  53.        system ("cls");
  54.        break;
  55.        
  56.        case 3:
  57.        if(PilaVacia(&Pila)){
  58.        cout << "\nLa pila esta vacia ingrese elementos primero!!!!\n";
  59.        }
  60.        else
  61.        {
  62.        Pop(&Pila,&Elementos);
  63.        cout <<"\n El elemento sacado de la pila es: "<<Elementos;
  64.        }
  65.        getch ();
  66.        system ("cls");
  67.        break;
  68.        
  69.        case 4:
  70.        cout << Imprimir(Pila);
  71.        getch ();
  72.        system ("cls");
  73.        break;  
  74.        
  75.        case 5:
  76.        cout <<  Contar(Pila);
  77.        getch ();
  78.        system ("cls");
  79.        break;      
  80. }}}
  81. getch ();
  82. }
  83. //InicializarPila
  84. void InicializarPila(TipoPila *Stack)
  85. {
  86.      Stack->Tope=VACIO;
  87.      }
  88. //PilaLlena
  89. int PilaLlena(TipoPila *Stack)
  90. {
  91.     return (Stack->Tope==MAX);
  92. }
  93. //PilaVacia
  94. int PilaVacia(TipoPila *Stack)
  95. {
  96.  return (Stack->Tope==VACIO);
  97. }
  98. //Push
  99. void Push (TipoPila *Stack,TipoElem Elemen)
  100. {
  101.  Stack->Tope++;
  102.  Stack->Elementos[Stack->Tope]=Elemen;
  103.  
  104.  }
  105.  //Pop
  106. int Pop (TipoPila *Stack,TipoElem *Elemen)
  107. {  
  108.  
  109.   *Elemen=Stack->Elementos[Stack->Tope];
  110.   Stack->Tope--;
  111.   return *Elemen;
  112.  }
  113.  //Imprimir
  114.  int Imprimir (TipoPila Stack)
  115.  {
  116. TipoElem Elemen;
  117. while (!PilaVacia(&Stack))
  118. {
  119.        Pop (&Stack,&Elemen);
  120.        cout <<"\n"<<Elemen;
  121. }        
  122.       }
  123. //Contar
  124. int Contar (TipoPila Stack)
  125. {
  126.  int contador=0;
  127.  TipoPila Aux;
  128.  TipoElem Elemen;  
  129.  InicializarPila (&Aux);
  130.  while (!PilaVacia(&Stack))
  131.  {
  132.  Pop(&Stack,&Elemen);
  133.  contador++;
  134.  cout << contador;
  135.  Push(&Aux,Elemen);
  136.  }
  137. }

Última edición por vnvnation; 26/10/2010 a las 00:59