SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: luchojimenez en Miércoles 20 de Octubre de 2010, 04:39

Título: funcion de pila solo me muestra un elemento
Publicado por: luchojimenez en Miércoles 20 de Octubre de 2010, 04:39
como les  venia  diciendo esta  funcion hace parte  de  un progrma  de una pila , pero el problema  es que solo me muestra  el primer  elemento  de la pila  ingresada no importa  si la pila  tiene  mas  elementos, entoces me  gustaria  que me colaboraran  optimizandolo


Código: C++
  1.  
  2. void visualizar (void)// funcion de la pila que le permite visualizar datos
  3. {
  4. char n;
  5. p = (struct pila*) malloc(sizeof(struct pila));
  6. if (cima==NULL)//si c esta vacio
  7. {
  8. do
  9. {
  10. clrscr();
  11. cout<<"NO HAY ELEMENTOS A LISTAR";//entoces mostrar esto
  12. gotoxy(5,19);cout<<"Desea regresar al menu principal S/N"<<endl;
  13. gotoxy(5,20);cin>>n;
  14. }
  15. while((n=='n')||(n=='N'));
  16. menu();
  17. }
  18.  
  19. else// si no
  20. {
  21. clrscr();//limpiar pantalla
  22. do
  23. {
  24. p=cima;//asignas inicio a p
  25. while (p!=NULL)//mientras la p no este vacia
  26. {
  27.  
  28. printf("primer nombre : %sn", p->prinomb);
  29. printf("segundo nombre : %sn", p->segnomb);
  30. printf("primer apellido : %sn", p->priapel);
  31. printf("segundo apellido : %sn", p->segapel);
  32. printf("cedula : %dn", p->ced);
  33. printf("edad: %dn", p->edad);
  34. printf("tel : %dn", p->tel);
  35. printf("sexo : %sn", p->sex);
  36. printf("afiliacion: %sn",p->eps);
  37. printf("E_mail: %sn", p->mail);
  38.  
  39.  
  40. p=p->sig;
  41. free(cima);
  42. gotoxy(5,19);cout<<"Desea regresar al menu principal S/N"<<endl;
  43. gotoxy(5,20);cin>>n;
  44. }
  45. }
  46. while((n=='n')||(n=='N'));
  47. menu();
  48. }
  49.  
  50. getch();
  51. }
  52.  
  53.  
Título: Re: funcion de pila solo me muestra un elemento
Publicado por: m0skit0 en Miércoles 20 de Octubre de 2010, 16:15
Por favor usa las etiquetas de código la próxima vez (que para eso están)

Código: C
  1. free(cima);
  2.  
¿Esto no te da ningún error en ejecución? No veo mucho sentido liberar siempre el mismo elemento. Fíjate que cima siempre tiene el mismo valor dentro del bucle while. Supongo que lo que quieres quitar es el elemento que estás mostrando. Si no, no me explico qué pretendes con ese free.
Título: Re: funcion de pila solo me muestra un elemento
Publicado por: luchojimenez en Miércoles 20 de Octubre de 2010, 16:48
hombre hice lo dijistes pero sigue  con lamisma  dificultad
Título: Re: funcion de pila solo me muestra un elemento
Publicado por: m0skit0 en Miércoles 20 de Octubre de 2010, 16:51
Yo no te he dicho que hagas nada, amigo.
Título: Re: funcion de pila solo me muestra un elemento
Publicado por: luchojimenez en Miércoles 20 de Octubre de 2010, 20:37
en ese caso perdone  amigo
Título: Re: funcion de pila solo me muestra un elemento
Publicado por: m0skit0 en Miércoles 20 de Octubre de 2010, 22:04
No has respondido a mis preguntas, así que supongo que no necesitas más ayuda.

Saludos