本文共 1729 字,大约阅读时间需要 5 分钟。
MyStack.h
class MyStack{public: MyStack(int Size);//分配内存初始化栈空间,设定栈容量,栈顶 ~MyStack();//回收栈空间内存 bool stackEmpty();//判定栈是否为空 bool stackFull();//判定栈是否满 void clearStack();//清空栈 int stackLength();//已有元素的个数 bool push(char elem);//元素入栈 bool pop(char &elem);//元素初栈 void stackTraverse();//遍历栈中所有元素private: char *m_pBuffer;//栈空间指针 int m_iSize;//栈容量 int m_iTop;//栈顶,栈中元素个数};
MyStack.cpp
#include "MyStack.h"#includeusing namespace std;MyStack::MyStack(int Size){ m_iSize = Size; m_pBuffer = new char[Size]; m_iTop = 0;}MyStack::~MyStack(){ delete []m_pBuffer; m_pBuffer = NULL;}bool MyStack::stackEmpty(){ if(0 == m_iTop){ return true; } return false;}bool MyStack::stackFull(){ if(m_iTop == m_iSize){ return true; } return false;}void MyStack::clearStack(){ m_iTop = 0;}int MyStack::stackLength(){ return m_iTop;}bool MyStack::push(char elem){ if(stackFull()){ return false; } m_pBuffer[m_iTop] = elem; m_iTop ++; return true;}bool MyStack::pop(char &elem){ if(stackEmpty()){ return false; } m_iTop --; elem = m_pBuffer[m_iTop]; return true;}void MyStack::stackTraverse(){ for(int i=0;i
main.cpp(随手测试)
#include#include #include "MyStack.h"using namespace std;int main(){ MyStack *pStack = new MyStack(5); pStack->push('h');//底 pStack->push('e'); pStack->push('l'); pStack->push('l'); pStack->push('o');//顶 pStack->stackTraverse(); char elem = 0; pStack->pop(elem); cout< stackTraverse(); //pStack->clearStack(); cout< stackLength()< stackEmpty()){ cout<<"栈为空"< stackFull()){ cout<<"栈为满"<
转载地址:http://tjsaf.baihongyu.com/