elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  colas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: colas  (Leído 1,253 veces)
Beginner Web


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
colas
« en: 14 Octubre 2018, 00:19 am »

hola, miren tengo q representar una cola de datos mediante un arreglo, donde las primeras tres posiciones son para los 2 indices y un contador de elementos, este contador de elementos me sirve para saber si la cola esta llena o vacia, todo anda perfecto, pero cuando hago una llamada a top_que(cola); me modifica en algo mi metodo pop_queue(cola);
Supongamos no llamo en ningun momento a top_queue(cola) y pongo datos de entrada
1 2 3 4 5 6 7 8 9
Muestra por pantalla
Final cola: 9;
Cantidad elementos: 9;
1 2 3 4 5 6 7 8 9;//Mientras cola no vacia cout<<pop_queue(cola);

Y suponiendo que yo antes  de vaciar la cola hubiese llamado a top_queue(cola); me sale esto

Frente cola:1;
Final cola:9;
Cantidad de elementos: 9;
234567891// Y esto es lo que me esta volviendo loca  :-\

Aqui el codigo
Código
  1. #include <iostream>
  2. #include <stdlib.h>
  3.  
  4. using namespace std;
  5.  
  6. const int MAX=12;
  7. typedef int tcola[MAX];
  8.  
  9. void init_queue(tcola &q);
  10. void push_queue(tcola &q, int nuevo);
  11. bool full_queue(tcola q);
  12. bool empty_queue(tcola q);
  13. int pop_queue(tcola &q);
  14. int top_queue(tcola q);
  15. int bottom_queue(tcola q);
  16. int elements(tcola q);
  17. int next(int indice);
  18.  
  19. int main()
  20. {
  21. int dato;
  22. tcola q;
  23. init_queue(q);
  24. while(full_queue(q)==false){
  25. cout<<"Ingrese dato: ";
  26. cin>>dato;
  27. push_queue(q,dato);
  28. }
  29. //cout<<top_queue(q)<<endl; //Sacar barras para el error
  30. cout<<bottom_queue(q)<<endl;
  31. cout<<elements(q)<<endl;
  32. while(empty_queue(q)==false){
  33. cout<<pop_queue(q);
  34. }
  35. cout<<endl;
  36. }
  37.  
  38. void init_queue(tcola &q)
  39. {
  40. q[0]=MAX-1;//Final de la cola
  41. q[1]=MAX-1;//Frente de la cola
  42. q[2]=0;//Contador de datos
  43. }
  44.  
  45. void push_queue(tcola &q, int nuevo)
  46. {
  47. if(full_queue(q)==true)
  48. cout<<"COLA LLENA"<<endl;
  49. else{
  50. q[0]=next(q[0]);
  51. q[q[0]]=nuevo;
  52. q[2]++;
  53. }
  54. }
  55.  
  56. bool full_queue(tcola q)
  57. {
  58. return q[2]==MAX-3;
  59. }
  60.  
  61. bool empty_queue(tcola q)
  62. {
  63. return q[2]==0;
  64. }
  65.  
  66. int pop_queue(tcola &q)
  67. {
  68. int aux;
  69. if(empty_queue(q)==true)
  70. aux=-1;
  71. else{
  72. q[1]=next(q[1]);
  73. aux=q[q[1]];
  74. q[2]--;
  75. }
  76. return aux;
  77. }
  78.  
  79. int top_queue(tcola q)
  80. {
  81. int aux;
  82. if(empty_queue(q)==true)
  83. aux=-1;
  84. else{
  85. q[1]=next(q[1]);//<----ERROR
  86. aux=q[q[1]];//<----ERROR (Reemplazar estas dos lineas por aux=q[next(q[1])];
  87. }
  88. return aux;
  89. }
  90.  
  91. int bottom_queue(tcola q)
  92. {
  93. int aux;
  94. if(empty_queue(q)==true)
  95. aux=-1;
  96. else{
  97. aux=q[q[0]];
  98. }
  99. return aux;
  100. }
  101.  
  102. int elements(tcola q)
  103. {
  104. return q[2];
  105. }
  106.  
  107. int next(int indice)
  108. {
  109. if(indice==MAX-1)
  110. indice=3;
  111. else
  112. indice++;
  113. return indice;
  114. }
  115.  

Ya encontre el error, estaba en el modulo de top_queue(q);  ;-)


« Última modificación: 14 Octubre 2018, 11:44 am por Beginner Web » En línea

7w7
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
cOLAS EN JAVa
Java
arbeluc 1 5,979 Último mensaje 14 Mayo 2004, 23:51 pm
por Ragnarok
colas simples
Programación C/C++
nevfuck 2 5,803 Último mensaje 2 Octubre 2010, 13:28 pm
por Gerik
Ayuda con colas en C++
Programación C/C++
edgar_areyes 0 5,113 Último mensaje 28 Noviembre 2010, 05:42 am
por edgar_areyes
Colas en C++
Programación C/C++
JesusIII 4 3,165 Último mensaje 21 Abril 2016, 14:29 pm
por HardForo
colas
Programación C/C++
ponchado 6 2,136 Último mensaje 13 Marzo 2017, 03:38 am
por ponchado
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines