chstack1.h.svn-base

来自「QT方面的开发」· SVN-BASE 代码 · 共 72 行

SVN-BASE
72
字号
#include <iostream>#include <assert.h>using namespace std;// ChStack implementation with constructor.const int DEFSIZE = 100;class ChStack {public:                                  //the public interface for the ADT ChStack    explicit ChStack(int size):    m_Maxlen(size), m_Top(EMPTY) {        assert(size > 0);        m_S = new char[size];    }    ChStack();                             // default constructor    ChStack(const ChStack& str);           // copy constructor    // domain transfer    ChStack(int size, const char str[]);    //destructor    ~ChStack() {        delete []m_S;    }    void reset() {        m_Top = EMPTY;    }                                      // mutator    void push(char c) {        m_S[++m_Top]= c;    }                                      // mutator    char pop() {        return m_S[m_Top--];    }                                      // mutator    char top_of() const {        return m_S[m_Top];    }                                      //accessor    bool isEmpty() const                   // accessor    {        return (m_Top == EMPTY);    }    bool isFull() const                    // accessor    {        return (m_Top == m_Maxlen - 1);    }private:    enum  {EMPTY = -1};    char*  m_S;                            //changed from m_S[maxlen]    int    m_Maxlen;    int    m_Top;};//default constructor for ChStackChStack::ChStack(): m_S(new char[DEFSIZE]),m_Maxlen(DEFSIZE), m_Top(EMPTY) {}//domain transferChStack::ChStack(int size, const char str[])        : m_Maxlen(size) {    int i;    assert(size > 0);    m_S = new char[size];    for (i = 0; i < m_Maxlen && str[i]; ++i)        m_S[i] = str[i];    m_Top = --i;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?