class CLinkStack
{
public:
//类的缺省构造函数,生成一个空堆栈
CLinkStack ()
{
top=NULL;
};
~ClinkStack(){};
//析构函数
//定义结点结构
struct node
{
char data; //入栈元素
node* next;
//指向下一结点的指针
};
void SetEmpty(); //置空堆栈
bool IsEmpty(); //判断堆栈是否为空
bool Push(char element); //压入堆栈
bool Pop(char & element);//弹出堆栈
private:
node* top;
};
CLinkStack::SetEmpty()
{
node* temp;
while (top!=NULL)
{
temp=top;
top=top->next;
delete temp;
}
}
CLinkStack::bool IsEmpty()
{
return (top==NULL);
}
CLinkStack::Push(char element)
{
node *p=new node();
if(p==NULL)
return false;
p->data=element;
p->next=top;
top=p;
retrun true;
}
CLinkStack::Pop(char &element)
{
if(IsEmpty())
return
false;
node*temp=top;
element=top->data;
top=top->next;
delete
top;
return
true;
}