数据结构之栈实现(1)

来源:互联网 发布:java图书馆系统源代码 编辑:程序博客网 时间:2024/06/17 19:03
#ifndef MYSTACK_H#define MYSTACK_Hclass MyStack{public:    MyStack(){}    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;         //栈顶,栈中元素个数};#endif
#include "MyStack.h"#include<iostream>using namespace std;MyStack::MyStack(int size){    m_iSize = size;    m_iTop = 0;    m_pBuffer = new char[size];}MyStack::~MyStack(){    delete[] m_pBuffer;    m_pBuffer = nullptr;}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;    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 < m_iTop; i++)        cout << m_pBuffer[i] <<" ";}
0 0
原创粉丝点击