#include<iostream>
using namespace std;
#define MAX_LEN 100
typedef struct
{
int key;
//others
}element;
class MYSTACK
{
private:
int t;
element terms[MAX_LEN];
public:
MYSTACK();
void push(element a);
element top();
element pop();
bool is_empty();
bool is_full();
}
;
MYSTACK::MYSTACK()
{ t =-1 ;}
bool MYSTACK::is_full()
{
return t==MAX_LEN-1;
}
bool MYSTACK::is_empty()
{
return t==-1;
}
void MYSTACK::push(element a)
{
if(is_full()) cout<<"full stack ! can't add"<<endl;
else terms[++t]=a;
}
element MYSTACK::top()
{
return terms[t];
}
element MYSTACK::pop()
{
if(is_empty()) { cout<<"empty stack !"<<endl; exit(1); }
--t;
return terms[t+1];
}
int main()
{
element a,b,c;
a.key=1;
b.key=2;
c.key=3;
MYSTACK s;
//.............
if(s.is_empty()) cout<<"空栈"<<endl;
s.push(a);
s.push(b);
s.push(c);
cout<<s.top().key<<endl;
return 0;
}