#include <iostream>
using namespace std;

struct Node {
	int data;
	Node* pNext;
};

struct MyStack {
    Node* pHead = nullptr;
    
    void push(Node* pNew);
    Node* pop();
};

int main() {
	
	// Declaration
	MyStack mStack;
	
	// Push operation
	{
		Node* mData = new Node;
		mData->data = 100000;
		mData->pNext = nullptr;
		mStack.push(mData);
	}
	
	// Pop operation
	{
		Node* mData = mStack.pop();
		cout<<mData->data;
	}
	
	return 0;
}

void MyStack::push(Node* pNew) {
    pNew->pNext = pHead;
    pHead = pNew;
}

Node* MyStack::pop() {
    if(!pHead) return pHead;
    Node* tmp = pHead;
    pHead = pHead->pNext;
    return tmp;
}