堆栈的实现

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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值