Holas, hoy me dió por colgar una clase, que simula la pila de ASM. Se suele hacer mucho, pero la voy a postear:
class pila{
private:
int data;
int length;
pila *next;
void nullNext(){next = nullptr;}
public:
pila(){data = -1; length = 0; next = nullptr;}
pila(pila *p){data = p->data; length = p->length; next = p->next;}
~pila(){while(next != nullptr) pop();}
int getData(){return data;}
int getLength(){return length;}
pila *getNext(){return next;}
bool pop(){
if(next != nullptr){
data = next->data;
--length;
pila *temp = next;
next = next->next;
temp->nullNext();
delete temp;
return true;
}
return false;
}
void push(int d = 0){
next = new pila(this);
++length;
data = d;
}
};
Si a alguien le gusta, que la use. Si alguien le ve algún bug/error/inconveniente, que lo diga.
La pila, guarda 3 valores: La direccion de la siguiente de la pila (*next); el dato de ese segmento (dato); la cantidad o longitud de la pila (length).
Ciao :3
Te falta hacerlo en formato plantilla. Asi se parece más a la pila de la librería estándar :¬¬