C++:day3

 C++:day3_第1张图片

#include 

using namespace std;

class My_stack
{
private:
    int *ptr;   //指向堆区空间
    int top;    //记录栈顶元素

 public:
    //无参构造
    My_stack():ptr(new int[10]), top(-1){}

    //有参构造
    My_stack(int size = 10):ptr(new int[size]), top(-1){}

    //析构函数
    ~My_stack()
    {
        delete []ptr;
    }

    //判空函数
    bool My_empty()
    {
        if (-1 == top)
            return true;
        return false;
    }

    //判满函数
    bool My_full(int size = 10)
    {
        if (top == size - 1)
            return true;
        return false;
    }

    //入栈函数
    void My_inqueue(int n)
    {
        *(ptr+(++top)) = n;
    }

    //出栈函数
    void My_push()
    {
        cout << "出栈元素:" << *(ptr+(top--)) <> size;

    My_stack s(size);

    while(1)
    {
        if (s.My_full(size))
        {
            cout << "栈满" <> n;

        s.My_inqueue(n);
    }

    while(1)
    {
        cout << "是否出栈y/n:";
        cin >> m;

        if ('n' == m)
            break;

        if (s.My_empty())
        {
            cout << "栈空" <

2>思维导图

C++:day3_第2张图片

 C++:day3_第3张图片

 C++:day3_第4张图片

 C++:day3_第5张图片

 3>封装循环顺序队列

C++:day3_第6张图片

 

#include 

using namespace std;

#

class My_stack
{
private:
    int *ptr;   //指向堆区空间
    int front;    //队头
    int rear;   //队尾

 public:
    //无参构造
    My_stack():ptr(new int[10]), front(0), rear(0){}

    //有参构造
    My_stack(int size = 10):ptr(new int[size]), front(0), rear(0){}

    //析构函数
    ~My_stack()
    {
        delete []ptr;
    }

    //判空函数
    bool My_empty()
    {
        if (rear == front)
            return true;
        return false;
    }

    //判满函数
    bool My_full(int size)
    {
        if (front == (rear+1)%size)
            return true;
        return false;
    }

    //入队函数
    void My_ins(int n, int size)
    {
        ptr[rear] = n;
        rear = (rear+1)%size;
    }

    //出队函数
    void My_push(int size)
    {
        cout << "出队元素:" << ptr[front] <> size;

    My_stack s(size);

    while(1)
    {
        if (s.My_full(size))
        {
            cout << "队列满" <> n;

        s.My_ins(n, size);
    }

    while(1)
    {
        cout << "是否出队y/n:";
        cin >> m;

        if ('n' == m)
            break;

        if (s.My_empty())
        {
            cout << "队列空" <

你可能感兴趣的:(c++,开发语言)