C++ code

#pragma once
#include "stdafx.h"

template<class T>
class CStack
{
public:
    CStack()
    {
        top=new SNode;
        top->prior=NULL;
        base=top;
        length=0;
    }
    bool isEmpty()
    {
        if(base==top)
            return 1;
        return 0;
    }
    void push(T data)//压栈、进栈
    {
        SNode* tmp=new SNode;
        tmp->data=data;
        tmp->prior=top;
        top=tmp;
    }
    T pop()//谈栈、出栈
    {
        if(!isEmpty())
        {
            T tmpData=top->data;
            SNode* tmp=new SNode;
            tmp=top;
            top=top->prior;
            delete tmp;
            return tmpData;
        }
    }
    T getTop()
    {
        if(!isEmpty()) return top->data;
    }
    void display()
    {
        SNode* tmp=new SNode;
        tmp =top;
        do{
            printf("%d,",tmp->data);
            tmp=tmp->prior;
        }while(tmp->prior);
        printf("\n");
    }

protected:
private:
    typedef struct SNode{
        T data;
        struct SNode* prior;//前一个元素的指针
    }SNode;
    SNode* top;
    SNode* base;
    int length;//栈的大小
};

 

相关文章:

  • 2021-07-02
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-22
  • 2021-08-08
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-06-12
  • 2021-10-16
  • 2021-11-07
  • 2022-01-11
  • 2021-09-21
相关资源
相似解决方案