Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Programa de Colas

Estas en el tema de Programa de Colas en el foro de C/C++ en Foros del Web. Hola que tal de nuevo yo pero ahora con un problema de colas en mi funcion meter, al querer meter yo elementos a mi Cola ...
  #1 (permalink)  
Antiguo 05/11/2010, 17:49
 
Fecha de Ingreso: marzo-2009
Mensajes: 74
Antigüedad: 15 años
Puntos: 1
Programa de Colas

Hola que tal de nuevo yo pero ahora con un problema de colas en mi funcion meter, al querer meter yo elementos a mi Cola me dice que la pila esta llena

Código C++:
Ver original
  1. #include <iostream.h>
  2. #include <conio.h>
  3. #define MAX 5
  4. #define VACIO -1
  5. typedef int TipoApuntador;
  6. typedef char TipoElemento;
  7. typedef struct TipoCola{
  8.          TipoApuntador Frente,Atras;
  9.           TipoElemento Elementos [MAX];
  10.           };
  11.  //Funcioncion InicializarCola
  12. void InicializarCola(TipoCola *C);
  13. //Funcion ColaLlena
  14. int ColaLlena(TipoCola C);
  15. //Funcion ColaVacia
  16. int ColaVacia(TipoCola C);
  17. //Funcion Meter
  18. void Meter (TipoCola *C,TipoElemento E );
  19. TipoCola Cola;
  20. TipoElemento Elementos;
  21. int opcion1=0;
  22. main ()
  23. {
  24. system ("color 4f");
  25. while (opcion1!='s')
  26. {
  27.  
  28. cout <<"SELECCIONE UNA OPCION DE LAS SIGUIENTES:"<<endl<<endl;
  29. cout <<"1.-Inicializar Cola"<<endl<<endl;
  30. cout <<"2.-Ingresar elementos a la Cola"<<endl<<endl;
  31. cout <<"Opcion:";
  32. cin >> opcion1;
  33.  system ("cls");
  34.  
  35.   switch (opcion1)
  36. {
  37.        case 1:
  38.        InicializarCola(&Cola);
  39.        cout<<"Cola inicializada ..."<<endl;
  40.        getch ();
  41.        system ("cls");
  42.        break;
  43.      
  44.        case 2:
  45.        if(ColaLlena(Cola))
  46.        {
  47.        cout << "\t\t\t Cola llena!!!!"<<endl<<endl<<endl;
  48.        }
  49.        else{
  50.        cout<<"Ingrese 1 elemento a la Cola:"<<endl;
  51.        cin >> Elementos;
  52.        Meter(&Cola,Elementos);}
  53.        getch ();
  54.        system ("cls");
  55.        break;
  56. }}
  57. getch ();
  58. }
  59.  
  60. void InicializarCola(TipoCola *C)
  61. {
  62.     C->Frente=VACIO;
  63.     C->Atras=VACIO;
  64.      }
  65. //Funcion ColaLlena
  66.  
  67. int ColaLlena(TipoCola C)
  68. {
  69.   if (((C.Frente=0)&&(C.Atras=MAX-1)||(C.Frente==C.Atras+1)))
  70.   return 1;
  71.   else  return 0;
  72.     }
  73. //Funcion ColaVacia
  74.  
  75. int ColaVacia(TipoCola C)
  76. {
  77.     return (C.Frente==VACIO);
  78.     }
  79. //Funcion Meter
  80.  
  81. void Meter (TipoCola *C,TipoElemento E )
  82. {
  83. if(C->Atras==VACIO)  
  84. {
  85.   C->Atras++;
  86.   C->Frente=C->Atras;                  
  87.                      }
  88.   else if (C->Atras==MAX-1)
  89.   C->Atras=0;
  90.   else C->Atras++;
  91.   C->Elementos[C->Atras]=E;
  92.      }

Última edición por vnvnation; 05/11/2010 a las 18:10
  #2 (permalink)  
Antiguo 06/11/2010, 00:49
Avatar de gvite666  
Fecha de Ingreso: abril-2010
Mensajes: 65
Antigüedad: 13 años, 11 meses
Puntos: 4
Respuesta: Programa de Colas

pues al parecer aqui esta tu error:
Código C++:
Ver original
  1. int ColaLlena(TipoCola C)
  2. {
  3.   //if (((C.Frente=0)&&(C.Atras=MAX-1)||(C.Frente==C.Atras+1)))
  4.     if (((C.Frente==0)&&(C.Atras==MAX-1)||(C.Frente==C.Atras+1)))
  5.   return 1;
  6.   else  return 0;
  7. }
  8. lo que pasa es que cada vez q entras al if pues en vez de comparar, estas asignando, entonces siempre se va a cumplir tu condicion.
Saludos.
__________________
No pienses si no vas a actuar.

Etiquetas: programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:32.