美文网首页
C++ 类实现栈

C++ 类实现栈

作者: soeben | 来源:发表于2018-12-17 21:33 被阅读0次
#include <iostream>
using namespace std;
class Stack{
private:
    int* data_;//存放栈中的数据
    int max_size_;//栈最大空间
    int top_;//栈顶
    //初始化栈
    void initStack() {
        data_ = new int(max_size_);//分配栈空间
        top_ = -1;//初始化栈顶
    }
public:
    //默认空间为10
    Stack() {
        max_size_ = 10;
        initStack();
    }
    //设置最大空间
    Stack(int max_size) {
        max_size_ = max_size;
        initStack();
    }
    ~Stack() {
        delete data_;
    }
    //是否栈空
    int isEmpty() {
        return (top_ == -1)?1:0;
    }
    //是否栈满
    int isFull() {
        return (top_ >= max_size_)?1:0;
    }
    //进栈
    int push(int x) {
        if(isFull())
            return 0;
        else
            data_[++top_] = x;
        return 1;
    }
    //出栈
    int pop(int &x) {
        if(isEmpty())
            return 0;
        else
            x = data_[top_--];
        return 1;
    }
    //清除栈
    void clear(){
        top_ = -1;
    }
};
int main(int argc, char const *argv[]) {
    Stack stack(12);
    stack.push(123);
    stack.push(456);
    stack.push(789);
    int a;
    while (stack.pop(a)) {
        cout<<a<<endl;
    }
    return 0;
}

相关文章

  • C++ 类实现栈

  • C++学习笔记目录

    C++初步 C++数据长度 C/C++ 堆 栈 静态 常量 代码 区 static关键字 C++类和对象 C++引...

  • 实现栈_基于数组

    基于动态数组实现栈声明栈的接口 实现类及测试

  • UML图笔记

    一、泛化: 泛化 C++实现方式:类继承 二、实现 C++实现方式:类继承,且实现了父类的接口。 三、关联 单向关...

  • C++语言实现顺序栈

    C++语言实现顺序栈 在写C语言实现顺序栈的时候,我已经向大家介绍了>栈的特点以及介绍了栈的相关操作,并利用C语言...

  • 编译-链接-笔记(1)

    1 函数的调用是用栈实现的,C常用的函数调用方式cdecl,c++采用一种新的thiscall 方式,主要是用于类...

  • C++ this 原理

    先看一个类 C++对象中,为什么需要 this。 ① 【main函数弹栈会 隐式代码:(栈区:delete stu...

  • 栈类设计(链表实现)及应用

    题目描述: 模拟STL stack类设计实现你的stack类,该类需具有入栈,出栈,判栈空,取栈顶元素等功能;利...

  • P61-用两个队列实现一个栈

    法1:《剑指》的思路 代码: C++算法之 两个队列实现一个栈 法2:更加简单 思路: 在实现时使得栈顶等于队列头...

  • 栈类的实现

    栈:栈是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈...

网友评论

      本文标题:C++ 类实现栈

      本文链接:https://www.haomeiwen.com/subject/inqhkqtx.html