栈链(c++实现)

  • Create_LinkStack(int size) 创建大小为size的栈链
  • Push_LinkStack(datatype x) 将x数据入栈
  • Pop_LinkStack() 将栈链顶部元素出栈

未加栈空判断,当前默认为栈不为空,主要体会数据交互过程

#include<bits/stdc++.h>
using namespace std;
typedef int datatype;

class Node{         //节点类
    public:
        datatype data;
        Node *next;
};

class LinkStack{
    public:
        LinkStack();
        ~LinkStack();
        void Create_LinkStack(int size);
        void Push_LinkStack(datatype x);
        datatype Pop_LinkStack();
        Node *head;
        int top;
        int size;
};

LinkStack::LinkStack(){
    head=new Node;
    head->data=0;
    head->next=NULL;
    this->top=-1;
}

LinkStack::~LinkStack(){
    delete head;
}

void LinkStack::Create_LinkStack(int size){
    Node *ptemp;
    Node *ptemp2;
    this->size=size;
    for(int i=0;i<size;++i){
        cin>>ptemp->data;
        ptemp2=this->head->next;
        this->head->next=ptemp;
        ptemp->next=ptemp2;
    }
}

void LinkStack::Push_LinkStack(datatype x){
    Node *pnew;
    Node *ptemp;
    pnew->data=x;
    ptemp=this->head->next;
    this->head->next=pnew;
    pnew->next=ptemp;
}

datatype LinkStack::Pop_LinkStack(){
    Node *ptemp;
    ptemp=this->head->next;
    this->head->next=ptemp->next;
    datatype x=ptemp->data;
    free(ptemp);
    return x;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值