自己写的一个简陋的C++栈模板

王朝c/c++·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

说明:

1.这个栈模板基于元素数组

2.未对代码作仔细的测试

#ifndef SUNXYSTACK_H

#define SUNXYSTACK_H

#define SMAX 200

template<class T>

class Stack

{public:

Stack();

Stack(int);

~Stack();

T& Top();

T& Pop();

bool Push(T&);

bool isEmpty();

bool isFull();

void Display();

private:

int top,size;

T* array;

};

template<class T>

Stack<T>::Stack()

{

this->Stack(SMAX);

}

template<class T>

Stack<T>::Stack(int s=SMAX)

{ if(s>SMAX||s<=0)

size=s;

else

size=SMAX

array=new T[size];

top=0;

}

template<class T>

Stack<T>::~Stack()

{

size=-1;top=0;

delete[] array;

}

template<class T>

T& Stack<T>::Top()

{

T& p=NULL;

if(!this->isEmpty())

p=array[top-1];

return p;

}

template<class T>

T& Stack<T>::Pop()

{

T& p=NULL;

if(!this->isEmpty())

{

top--;

p=array[top];

}

return p;

}

template<class T>

bool Stack<T>::Push(T& entry)

{

bool sign;

if(!this->isFull())

{

array[top]=entry;

top++;

sign=true;

}

else

sign=false;

return sign;

}

template<class T>

bool Stack<T>::isEmpty()

{

if(top==0)

return true;

else

return false;

}

template<class T>

bool Stack<T>::isFull()

{

if(top==size+1)

return true;

else

return false;

}

template<class T>

void Stack<T>::Display()

{

//add codes here

}

#endif

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航