#include<iostream.h>
#include<stdlib.h>
#include<conio.h>
class node
{
friend class stack;
private:
int data;
node *link;

};
//-----------------------
class stack
{
public:
stack(){top=0;}
int stackempty();
int pop();
void push(int dat);
void print();
private:
node *top;
};
int stack::stackempty()
{
if(top==0)return 1;
else return 0;
}
int stack::pop()
{
int t=top->data;
if(!stackempty()){
node *tmp=top;
top=top->link;
delete tmp;
return t;
}
else {cout<<"no elements to pop\n"; return 0;}
}
void stack::push(int dat)
{
node *ptr=new node;
  ptr->data=dat;
 if(top==NULL)
  {

	 top=ptr;
	 top->link=NULL;
  }
	else
	{
	  ptr->link=top;
	  top=ptr;
	}
}
void stack::print()
{
if(!stackempty()){
node *tmp;
cout<<"The stack cotents are\n";
for(tmp=top;tmp!=0;tmp=tmp->link)
cout<<tmp->data<<";";
cout<<endl;
}
else cout<<"there is no elements\n";
}