Código
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