栈的简单实现(c++版) By yusijia May 02 2016 Updated:May 02 2016 Contents 1. Stack.h2. Stack.cpp Stack.h123456789101112131415161718192021#ifndef STACK_H_INCLUDED#define STACK_H_INCLUDEDtemplate <class T>class Stack{private: int size; int top; T* contain;public: Stack() : size(0), top(-1), contain(NULL) {} Stack(int MaxSize); void push(T & element); T & top(); void pop(); bool isEmpty(); void MakeEmpty();};#endif // STACK_H_INCLUDED Stack.cpp12345678910111213141516171819202122232425262728293031323334353637383940template <class T>Stack<T>::Stack(int MaxSize){ size = MaxSize; top = -1; contain = new T[size];}template <class T>void Stack<T>::push(T & element){ assert(tos != size - 1); contain[++top] = element;}template <class T>void Stack<T>::pop(){ assert(top != -1); top--;}template <class T>T& Stack<T>::top(){ assert(top != -1); return contain[top];}template <class T>void Stack<T>::MakeEmpty(){ top = -1;}template <class T>bool Stack<T>::isEmpty(){ return top == -1;}