dnf散打90级刷图加点:数据结构二:栈(C++代码)

来源:百度文库 编辑:偶看新闻 时间:2024/05/06 21:35:08

 

数据结构系列均是本人个人搜集和写出来的,若有错误请大家批评指正。(有的是c++,有的是伪代码)

 

1. 栈

#include

using namespace std;

 

template              //顺序表示的Stack

class Stack

{

       public:

              Stack(int msize=100);

              ~Stack();

              bool IsEmpty();

              bool IsFull();

              bool Top(T& x);

              bool Push(T x);

              bool Pop();

              void Clear();

              void OutPut(ostream& out=cout);

       private:

              int top;

              int maxtop;

              T *s;

};

 

template

Stack::Stack(int msize)

{

       top=-1;

       maxtop=msize-1;

       s=new T[msize];

}

 

template

Stack::~Stack()

{

       delete []s;

}

 

template

bool Stack::IsEmpty()

{

       return top==-1;

}

 

template

bool Stack::IsFull()

{

       return top==maxtop;

}

 

template

bool Stack::Top(T& x)

{

       if(Isempty())

       {

              cout << "UnderFlow" << endl;

              return false;

       }

       x=s[top];

       return true;

}

 

template

bool Stack::Push(T x)

{

       if(IsFull())

       {

              cout << "OverFlow" << endl;

              return false;

       }

       s[++top]=x;

       return true;

}

 

template

bool Stack::Pop()

{

       if(IsEmpty())

       {

              cout << "UnderFlow" << endl;

              return false;

       }

       --top;

       return true;

}

 

template

void Stack::OutPut(ostream & out)

{

       if(IsEmpty())

       {

              out << "Empty" << endl;

              return;

       }

       for(int i=0;i

       {

              cout << s[i] << ' ';

       }

       out << endl;

       return;

}

 

template

void Stack::Clear()

{

       top=-1;

}