• Viernes 8 de Noviembre de 2024, 18:52

Autor Tema:  funcion de pila solo me muestra un elemento  (Leído 1491 veces)

luchojimenez

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
funcion de pila solo me muestra un elemento
« en: Miércoles 20 de Octubre de 2010, 04:39 »
0
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.  
« última modificación: Jueves 21 de Octubre de 2010, 04:19 por luchojimenez »

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: funcion de pila solo me muestra un elemento
« Respuesta #1 en: Miércoles 20 de Octubre de 2010, 16:15 »
0
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.

luchojimenez

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
Re: funcion de pila solo me muestra un elemento
« Respuesta #2 en: Miércoles 20 de Octubre de 2010, 16:48 »
0
hombre hice lo dijistes pero sigue  con lamisma  dificultad

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: funcion de pila solo me muestra un elemento
« Respuesta #3 en: Miércoles 20 de Octubre de 2010, 16:51 »
0
Yo no te he dicho que hagas nada, amigo.

luchojimenez

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
Re: funcion de pila solo me muestra un elemento
« Respuesta #4 en: Miércoles 20 de Octubre de 2010, 20:37 »
0
en ese caso perdone  amigo

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: funcion de pila solo me muestra un elemento
« Respuesta #5 en: Miércoles 20 de Octubre de 2010, 22:04 »
0
No has respondido a mis preguntas, así que supongo que no necesitas más ayuda.

Saludos