C++|[C++]数据结构(公式化描述的堆栈Stack的简单创建与使用)

//公式化描述的堆栈类Stack #include using namespace std; template class Stack{ public: Stack(int MaxStackSize=10); ~Stack(){delete[]stack; } bool IsEmpty()const{return top==-1; } bool IsFull()const{return top==MaxTop; } T Top()const; Stack& Add(const T& x); Stack& Delete(T& x); void Show()const; private: int top; //栈顶 int MaxTop; //最大栈顶值 T *stack; //堆栈元素数组 }; class OutOfBounds{ public: OutOfBounds(){ cout<<"Out Of Bounds!"< void Stack::Show()const{ for(int i = 0; i<=top; i++){ cout< Stack::Stack(int MaxStackSize){ MaxTop = MaxStackSize -1; stack = new T[MaxStackSize]; top = -1; }; //返回栈顶元素 template T Stack::Top()const{ if(IsEmpty) throw OutOfBounds(); else return stack[top]; }//添加元素 template Stack& Stack::Add(const T& x){ if(IsFull()){ throw NoMem(); } stack[++top]=x; return *this; }//删除元素 template Stack& Stack::Delete(T& x){ if(IsEmpty()){ throw OutOfBounds(); } x=stack[top--]; return *this; }int main(){ StackmyStack; myStack.Add(1); myStack.Add(2); myStack.Add(3); myStack.Add(4); myStack.Show(); return 0; }



    推荐阅读