[C++] 数据结构之顺序栈

来源:互联网 发布:网络t客人来ktv 编辑:程序博客网 时间:2024/04/28 15:55

不知道有没有错误。

///////////////////////////////////////// Stack.h : CStack 顺序栈类 // #include <assert.h>#define STACK_SIZE 100template <class Type>class CStack {// 方法public :// 构造 CStack();CStack(Type arrInitial[], int iLen);// 是否为空bool IsEmpty(); // 取栈顶元素Type GetTop();// 取栈长度int GetSize(); // 入栈(返回栈长度)int Push(Type value);// 出栈(返回栈长度)int Pop(); // 清空栈void Clear();// 属性 private :Type m_arrStack[STACK_SIZE];int m_pTop;};// 构造 template <class Type>CStack<Type>::CStack(){m_pTop = 0;}// 构造template <class Type>CStack<Type>::CStack(Type arrInitial[], int iLen){m_pTop = iLen;assert(m_pTop <= STACK_SIZE);for(int i = 1; i <= iLen; i++)m_arrStack[i - 1] = arrInitial[i - 1];}// 是否为空template <class Type>bool CStack<Type>::IsEmpty(){return !m_pTop;}// 取栈顶元素template <class Type>Type CStack<Type>::GetTop(){assert(m_pTop > 0);assert(m_pTop <= STACK_SIZE);return m_arrStack[m_pTop - 1];}// 入栈(返回栈长度)template <class Type>int CStack<Type>::Push(Type value){assert(m_pTop < STACK_SIZE);m_pTop++;m_arrStack[m_pTop - 1] = value;return m_pTop;}// 出栈(返回栈长度)template <class Type>int CStack<Type>::Pop(){assert(m_pTop > 0);m_pTop--;return m_pTop;}// 取栈长度template <class Type>int CStack<Type>::GetSize(){return m_pTop;}// 清空栈template <class Type>void CStack<Type>::Clear(){m_pTop = 0;}


0 0
原创粉丝点击