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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


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

Desconectado Desconectado

Mensajes: 5



Ver Perfil
duda pilas
« en: 17 Octubre 2010, 22:22 pm »

hola foro tengo una duda:

Código
  1. #include <iostream.h>
  2. #include <windows.h>
  3. #include <conio.h>
  4.  
  5. struct Nodo
  6. {
  7. int Dato;
  8. Nodo *sig;
  9. };
  10.  
  11. class Pila
  12. {
  13. private:
  14. Nodo *inicio;
  15. public:
  16. //constructor
  17. Pila()
  18. {
  19. inicio=NULL;
  20. }
  21.    void Sacar()
  22. {
  23. Nodo *r, *ant;
  24. r = inicio;
  25.  
  26. if(r!=NULL)
  27. {
  28.  
  29. do
  30. {
  31. ant=r;
  32. if (r->sig!=NULL)
  33. {
  34. r = r->sig;
  35. }
  36. }while(r->sig!=NULL);
  37. if(ant == r)
  38. {
  39. inicio=NULL;
  40. }
  41. delete r;
  42. ant->sig=NULL;
  43. }
  44. }
  45.  

-------------------------------------------------------

void suma

para sumar la pila insertada, en este caso tengo insertado
el 7,9,5 el resultado es 21, tengo que recorrer de nuevo la pila (como en el caso void mostrar)
el problema viene cuando tengo que sumar, ya le busque solo y nole encuentro...



--------------------------------------------------------



Código
  1. void Mostrar()
  2. {
  3. Nodo *recorrer;
  4. recorrer = inicio;
  5.  
  6. if (recorrer!=NULL)
  7. {
  8. do
  9. {
  10. cout << recorrer->Dato << endl;
  11. recorrer = recorrer->sig;
  12. }while(recorrer->sig!=NULL);
  13. cout << recorrer->Dato << endl;
  14. }
  15. else
  16. {
  17. cout << "Pila vacia" << endl;
  18. }
  19. }
  20.  
  21.     void Insertar(int num)
  22. {
  23.  
  24. Nodo *nuevo;
  25. nuevo = new Nodo;
  26. nuevo->Dato=num;
  27. nuevo->sig=NULL;
  28.  
  29. if(inicio==NULL)
  30. {
  31. inicio=nuevo;
  32. }
  33. else
  34. {
  35. if (inicio->sig==NULL)
  36. {
  37. inicio->sig = nuevo;
  38. }
  39. else
  40. {
  41. Nodo *aux;
  42. aux=inicio;
  43.  
  44. while(aux->sig!=NULL)
  45. {
  46. aux=aux->sig;
  47. }
  48. aux->sig=nuevo;
  49. }
  50. }
  51.  
  52. }
  53. };
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.   void main (void)
  62.   {
  63. int op;
  64. Pila numeros;
  65.  
  66.  
  67.  
  68.  
  69. do
  70. {
  71. system("cls");
  72. cout << "<------(((MENU)))----->" << endl;
  73. cout << "1.- Insertar pila" << endl;
  74. cout << "2.- Sacar numero de la pila" << endl;
  75. cout << "3.- Mostrar pila" << endl;
  76. cout<<"4.- suma la pila"<<endl;
  77. cout << "elige una opcion: ";
  78. cin >> op;
  79.  
  80. system("cls");
  81. switch(op)
  82. {
  83. case 1:
  84. cout<<"numeros insertados"<<endl;
  85. numeros.Insertar(7);
  86.         numeros.Insertar(9);
  87.        numeros.Insertar(5);
  88.  
  89. break;
  90. case 2:
  91.    cout << "Numero eliminado" << endl;
  92. numeros.Sacar();
  93. break;
  94. case 3:
  95. numeros.Mostrar();
  96. break;
  97.  
  98.        case 4:
  99.    numeros.Sumar();
  100.  
  101. break;
  102.  
  103. default:
  104. cout << "Adios!!!"<< endl;
  105. }
  106.  
  107. getch();
  108.  
  109. }while(op>=1 && op<=3);
  110.  
  111. }
  112.  


« Última modificación: 17 Octubre 2010, 22:47 pm por Littlehorse » En línea

Gerik

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Re: duda pilas
« Respuesta #1 en: 18 Octubre 2010, 05:13 am »

Código
  1. int Sumar()
  2.   {Nodo *recorrer;
  3.    recorrer = inicio;
  4.    if(recorrer!=NULL)
  5.     {do
  6.       {a+=recorrer->Dato;
  7.       recorrer = recorrer->sig;
  8.       }
  9.       while(recorrer->sig!=NULL);
  10.       a+=recorrer->Dato;
  11.    }else
  12.     {cout << "Pila vacia" << endl;}
  13.     return a;}
En el main declaras la funcion sumar pero no la has implementado, solo era modificar dos lineas y yap :D :D :D :D :D


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda con programa de Pilas
Programación C/C++
Emily 2 2,731 Último mensaje 3 Febrero 2019, 08:25 am
por Emily
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines