template<typename Type> class SeqStack
{
public:
SeqStack(int sz): top(0), MaxSize(sz)
{
pelements = new Type[sz];
if(pelements == NULL)
{
cout<<"Application Error!"<<endl;
exit(1);
}
}
~SeqStack()
{
delete [] pelements;
}
void Push(const Type item);
Type Pop();
Type GetTop() const;
void Print();
void MakeEmpty()
{
top = 0;
}
bool IsEmpty() const
{
return top == 0;
}
bool IsFull()
{
return top == MaxSize;
}
private:
int top; //指向顺序栈的下一个要存储元素的位置
Type *pelements;
int MaxSize;
};
template<typename Type>
void SeqStack<Type>::Push(const Type item)
{
if( top == MaxSize )
{
cout<<"the stack is full,cannot push the data"<<endl;
return ;
}
pelements[top++] = item;
}
template<typename Type>
Type SeqStack<Type>::Pop()
{
if( top == 0)
{
cout<<"the stack is empty,cannot pop the data"<<endl;
exit(1);
}
return pelements[--top];
}
template<typename Type>
Type SeqStack<Type>::GetTop() const
{
if( top == 0 )
{
cout<<"the stack is Empty,cannot get the data"<<endl;
exit(1);
}
return pelements[top-1];
}
template<typename Type>
void SeqStack<Type>::Print()
{
if(top == 0)
{
cout<<"the stack is Empty"<<endl;
exit(1);
}
cout<<"bottom";
for(int i=0; i<top; ++i)
{
cout<<"-->"<<pelements[i];
}
cout<<"-->top"<<endl;
}
c++实现数据结构五顺序栈
最新推荐文章于 2022-11-14 09:55:52 发布