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;
    }
  • 相关阅读:
    Django入门
    初识json
    回来了
    python学习
    JavaScript 中获取元素样式
    浏览器检测与特征检测
    DOM 节点的类型及判定
    浏览器的控制台工具
    .htaccess 配置文件的使用
    workLog:07001:补充0829 前
  • 原文地址:https://www.cnblogs.com/h694879357/p/11764738.html
Copyright © 2011-2022 走看看