Hola tengo el siguiente programita
#include <iostream>
using namespace std;
class nodo {
private:
int valor;
nodo *siguiente;
public:
nodo(int v, nodo *sig = NULL)
{ valor = v; siguiente = sig; }
friend class pila;
};
typedef nodo *pnodo;
class pila {
private:
pnodo ultimo;
public:
pila() {ultimo=NULL;} ;
~pila();
void Push(int v);
int Pop();};
void pila::Push(int v) {
pnodo nuevo;
nuevo = new nodo(v, ultimo);
ultimo = nuevo;
}
pila::~pila() {
while(ultimo) Pop();
}
int pila::Pop() {
pnodo aux; /* aux es puntero auxiliar */ int v;
/* variable auxiliar para retornar el valor agregado */
if(ultimo==NULL)
return 99999; /*Si no hay nodos en la pila */
aux=ultimo; /* aux apunta al elemento tope de la pila */
ultimo=aux->siguiente; /*ultimo apunta al penúltimo */
v=aux->valor; /* Guardamos el valor eliminado para retornar */
delete aux; /* Borrar el nodo */
return v;
}
int main() {
pila iPila; // iPila es instancia de pila
iPila.Push(20);
cout << "Push(20)" << endl;
iPila.Push(10);
cout << "Push(10)" << endl;
cout << "Pop() = " << iPila.Pop() << endl;
iPila.Push(40);
cout << "Push(40)" << endl;
iPila.Push(30);
cout << "Push(30)" << endl;
cout << "Pop() = " << iPila.Pop() << endl;
cout << "Pop() = " << iPila.Pop() << endl;
iPila.Push(90);
cout << "Push(90)" << endl;
cout << "Pop() = " << iPila.Pop() << endl;
cout << "Pop() = " << iPila.Pop() << endl;
return 0;
}
y no termino de entender que hacer es segmento de codigo:
typedef nodo *pnodo;
De no estar, como se reemplazaria esta sentencia en el resto del programa? es decir, en vez de pnodo aux; por ejemplo, que se colocaria? muchas gracias!