Código:
#include<iostream>
using namespace std;
template<class T>
class Nodo {
public:
T dato;
Nodo<T>* siguiente;
Nodo(T x) {
dato = x;
siguiente = NULL;
}
};
template<class T>
class Pila {
public:
Nodo<T>* cabeza;
Nodo<T>* cola;
Pila() {
cabeza = NULL;
cola = NULL;
}
void insertarfinal(T x) {
Nodo<T>* nuevo = new Nodo<T>(x);
if (!cabeza) {
cabeza = nuevo;
}else {
Nodo<T>* aux = cabeza;
while (aux->siguiente)
{
aux = aux->siguiente;
}
aux->siguiente=nuevo
}
cola = nuevo;
}
void eliminarultimo() {
//como hago esto :c ....!!!!
}
void imprimir() {
Nodo<T>* aux = cabeza;
while (aux) {
cout << aux->dato << "-";
aux = aux->siguiente;
}
cout << endl;
}
};
int main() {
Pila<int> milista;
milista.insertarfinal(1);
milista.insertarfinal(2);
milista.insertarfinal(3);
milista.insertarfinal(4);
milista.insertarfinal(6);
milista.imprimir();
milista.eliminarultimo();
cout << endl;
milista.imprimir();
milista.eliminarultimo();
cout << endl;
milista.imprimir();
milista.eliminarultimo();
cout << endl;
milista.imprimir();
milista.eliminarultimo();
cout << endl;
system("pause");
}