zoukankan      html  css  js  c++  java
  • 循环队列--忘记分配空间和如何用tag判断队空队满

    #include<iostream>
    #define maxsize 100
    using namespace std;
    struct CLqueue
    {
        int *Q;
        int front;
        int rear;
        int tag;
    };
    typedef struct CLqueue *CL;
    void Init(CL &q)
    {
        q = new CLqueue;
        q->Q=new int[maxsize];
        q->tag = 0;//队空
        q->rear = q->front=0;
    }
    bool Judge(CL &q)
    {
        if (q->tag)
            return true;
        else
            return false;
    
    }
    void Enqueue(CL &q,int a)
    {
        if (Judge(q))
            return;
        q->Q[q->rear] = a;
        q->rear = (q->rear +1 ) % maxsize;
        if ((q->rear + 1) % maxsize == q->front)
            q->tag = 1;
    
    }
    void Dlqueue(CL &q)
    {
        if (!Judge(q))
            return;
        q->front = (q->front + 1) % maxsize;
        if ((q->front + 1) % maxsize == q->rear)
            q->tag = 0;
    }
    
    
    int main()
    {
        int n;
        CL q;
        while (cin >> n && n != 0)
        {
            Init(q);
            for (int i= 0; i < n; i++)
            {
                int a;
                cin >> a;
                Enqueue(q, a);
            }
            for (int i = q->front; i < q->rear-1; i++)
            {
                cout << q->Q[i] << " ";
            }
            cout<< q->Q[q->rear-1] << endl;
        }
        return 0;
    }
    #include<iostream>
    #define maxsize 100
    using namespace std;
    struct CLqueue
    {
        int *Q;
        int front;
        int rear;
        int tag;
    };
    typedef struct CLqueue *CL;
    void Init(CL &q)
    {
        q = new CLqueue;
        q->Q=new int[maxsize];
        q->tag = 0;//队空
        q->rear = q->front=0;
    }
    bool Judge(CL &q)
    {
        if (q->tag)
            return true;
        else
            return false;
    
    }
    void Enqueue(CL &q,int a)
    {
        if (Judge(q))
            return;
        q->Q[q->rear] = a;
        q->rear = (q->rear +1 ) % maxsize;
        if ((q->rear + 1) % maxsize == q->front)
            q->tag = 1;
    
    }
    void Dlqueue(CL &q)
    {
        if (!Judge(q))
            return;
        q->front = (q->front + 1) % maxsize;
        if ((q->front + 1) % maxsize == q->rear)
            q->tag = 0;
    }
    
    
    int main()
    {
        int n;
        CL q;
        while (cin >> n && n != 0)
        {
            Init(q);
            for (int i= 0; i < n; i++)
            {
                int a;
                cin >> a;
                Enqueue(q, a);
            }
            for (int i = q->front; i < q->rear-1; i++)
            {
                cout << q->Q[i] << " ";
            }
            cout<< q->Q[q->rear-1] << endl;
        }
        return 0;
    }
  • 相关阅读:
    gdal source code c++ make windows
    libjpeg安装和使用
    window 安装gdal和python
    gdal和python在windows上的安装
    将博客搬至CSDN
    ue4 Worldmachine 结合使用
    织梦学习
    前端 css html js javascript jquery
    jquery 表单验证插件
    gif动图生成
  • 原文地址:https://www.cnblogs.com/h694879357/p/11764738.html
Copyright © 2011-2022 走看看