数据结构之栈

栈:操作受限的线性表,后进先出
栈的内部存储既可以用顺序表,也可以用链表,分别称作顺序栈和链栈。

先来实现一个简单的顺序栈
C++

class MyStack {
    char *buffer;
    int size;
    int top;
public:
    MyStack(int size);
    ~MyStack();
    bool stackEmpty();
    bool stackFull();
    void clearStack();
    int stackLength();
    void push(char elem);
    void pop(char &elem);
    void stackTraverse();
};

MyStack::MyStack(int size){
    buffer = new char[size];
    this->size = size;
    top = 0;
}

MyStack::~MyStack(){
    delete [] buffer;
}

bool MyStack::stackEmpty(){
    return top == 0;
}

bool MyStack::stackFull(){
    return top == size;
}

void MyStack::clearStack(){
    top = 0;
}

int MyStack::stackLength(){
    return top; 
}

void MyStack::push(char elem){
    buffer[top++] = elem;
}

void MyStack::pop(char &elem){
    elem = buffer[--top];
}

void MyStack::stackTraverse(){
    for (int i=0; i<top; i++) {
        std::cout<<buffer[i]<<std::endl;
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容