堆栈 C++ 急

来源:百度知道 编辑:UC知道 时间:2024/07/01 04:31:40
利用类的表示堆栈(stack) 并为此栈建立Push()(压栈)pop()(弹栈)及显示堆栈内容的showstack()等函数 要求在主控程序中以菜单方式调用上述功能

其实不用写了,在STL中直接调用stack模板类就可以了。如果要的话下面的代码:
头文件:

#ifndef _STACK
#define _STACK

template <typename T>
class Stack
{
public:
explicit Stack(int msize);
Stack();
~Stack();
Stack(const Stack &s);
//不管是拷贝构造函数还是重载的赋值运算符都需要
//深度拷贝,要把底层的数据拷贝过去
Stack & operator=(const Stack &s);
void Push( const T &e);
T Pop( );
bool IsEmpty();
void showStack();

private:
void copyFrom(const Stack &s);
T *s;
int Maxsize;
int top;
};

template <typename T>
Stack<T>::Stack(int msize):Maxsize(msize)
{
s=new T[Maxsize];
top=-1;
}

template <typename T>
Stack<T>::Stack()
{
this->Maxsize=10;
s=new T[this->Maxsize];
top=-1;
}
template <typename T>
Stack<T>::~S