hola foro tengo una duda:
-------------------------------------------------------
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 (cpp) [Seleccionar]
#include <iostream.h>
#include <windows.h>
#include <conio.h>
struct Nodo
{
int Dato;
Nodo *sig;
};
class Pila
{
private:
Nodo *inicio;
public:
//constructor
Pila()
{
inicio=NULL;
}
void Sacar()
{
Nodo *r, *ant;
r = inicio;
if(r!=NULL)
{
do
{
ant=r;
if (r->sig!=NULL)
{
r = r->sig;
}
}while(r->sig!=NULL);
if(ant == r)
{
inicio=NULL;
}
delete r;
ant->sig=NULL;
}
}
-------------------------------------------------------
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 (cpp) [Seleccionar]
void Mostrar()
{
Nodo *recorrer;
recorrer = inicio;
if (recorrer!=NULL)
{
do
{
cout << recorrer->Dato << endl;
recorrer = recorrer->sig;
}while(recorrer->sig!=NULL);
cout << recorrer->Dato << endl;
}
else
{
cout << "Pila vacia" << endl;
}
}
void Insertar(int num)
{
Nodo *nuevo;
nuevo = new Nodo;
nuevo->Dato=num;
nuevo->sig=NULL;
if(inicio==NULL)
{
inicio=nuevo;
}
else
{
if (inicio->sig==NULL)
{
inicio->sig = nuevo;
}
else
{
Nodo *aux;
aux=inicio;
while(aux->sig!=NULL)
{
aux=aux->sig;
}
aux->sig=nuevo;
}
}
}
};
void main (void)
{
int op;
Pila numeros;
do
{
system("cls");
cout << "<------(((MENU)))----->" << endl;
cout << "1.- Insertar pila" << endl;
cout << "2.- Sacar numero de la pila" << endl;
cout << "3.- Mostrar pila" << endl;
cout<<"4.- suma la pila"<<endl;
cout << "elige una opcion: ";
cin >> op;
system("cls");
switch(op)
{
case 1:
cout<<"numeros insertados"<<endl;
numeros.Insertar(7);
numeros.Insertar(9);
numeros.Insertar(5);
break;
case 2:
cout << "Numero eliminado" << endl;
numeros.Sacar();
break;
case 3:
numeros.Mostrar();
break;
case 4:
numeros.Sumar();
break;
default:
cout << "Adios!!!"<< endl;
}
getch();
}while(op>=1 && op<=3);
}