09.stack实现

2017-09-13 20:36:03来源:CSDN作者:ldb1232016人点击

分享

栈是一种数据结构,它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。栈也称为后进先出表。

#include<QDebug>class stack{private:    int *pstack;    int *phead;    int *ptop;    int *ptail;public:    stack(const int &num);    ~stack();    void push(const int &num);    void pop();    int top() const;    int get_size() const;};int main(){    class stack *p=nullptr;    p=new stack(3);    p->push(20);    p->push(5);    p->push(10);    p->pop();    delete p;    return 0;}stack::stack(const int &num):pstack(nullptr),phead(nullptr),ptop(nullptr),ptail(nullptr){    pstack=new int[num];    phead=pstack;    ptop=pstack;    ptail=phead+num-1;}void stack::push(const int &num){    *ptop=num;    //防止溢出    if(ptail!=ptop)        ptop++;}void stack::pop(){    while(ptop!=phead)    {        qDebug()<<*ptop;        ptop--;        if(ptop==phead)            qDebug()<<*ptop;    }}int stack::top() const{    return *ptop;}int stack::get_size() const{    return sizeof(int)*(ptail-phead+1);}stack::~stack(){    delete []pstack;    pstack=nullptr;    ptop=nullptr;    phead=nullptr;    ptail=nullptr;}


最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台