C++编程组队列,组队列是个什么概念?能不能举个例子?

1、ENQUEUE,表示当有新的元素进入队列,首先会检索是否有同一组的元素已经存在,如果有,则新元素排在同组的最后,如果没有则插入队列末尾。2、DEQUEUE,表示队列头... 1、 ENQUEUE,表示当有新的元素进入队列,首先会检索是否有同一组的元素已经存在,如果有,则新元素排在同组的最后,如果没有则插入队列末尾。

2、 DEQUEUE,表示队列头元素出队

举个例子吧
展开
 我来答
zhaoyj163em
2013-10-12 · TA获得超过1033个赞
知道小有建树答主
回答量:268
采纳率:0%
帮助的人:364万
展开全部

例如课室有8排,5个人要选择坐哪一排,如果

第一个人要坐第 2 排,

第二个人要坐第 3 排,

第三个人要坐第 1 排,

第四个人要坐第 2 排,

第五个人要坐第 1 排,

则第2排坐了第1,第4个人,第3排坐了第2个人,第1排坐了第3,第5个人,

那么这5个人组成的整个队列是这样子的:

1 4 2 3 5。

需要代码实现吗?

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;

const int N = 1010;
const int M = 100100;
int head[N], tail[N], en;
int edge[M], nxt[M], pre[M];
int num[N], use[N], numh, numt;

class Queue
{
    void add(int x, int y)
    {
        edge[en] = y;
        nxt[en] = tail[x];
        pre[nxt[en]] = en;
        pre[en] = -1;
        if (tail[x] == -1)
        {
            head[x] = en;
        }
        tail[x] = en++;
    }
public:
    Queue()
    {
        memset(tail, -1, sizeof tail);
        memset(use, 0, sizeof use);
        numh = numt = en = 0;
    }
    void EnQueue(int x, int group)
    {
        add(group, x);
        if (!use[group])
        {
            use[group] = 1;
            num[numt++] = group;
            if (numt == N)
                numt = 0;
        }
    }
    int DeQueue()
    {
        if (head[num[numh]] == -1)
        {
            use[num[numh++]] = 0;
            if (numh == N)
                numh = 0;
        }
        int &i = head[num[numh]];
        int res = edge[i];
        i = pre[i];
        return res;
    }
    bool empty()
    {
        return head[num[numh]] == -1 && (numh + 1) % N == numt;
    }
};

int main()
{
    Queue q;
    q.EnQueue(1,2);
    q.EnQueue(2,3);
    q.EnQueue(3,1);
    q.EnQueue(4,2);
    q.EnQueue(5,1);
    while(!q.empty())
        cout<<q.DeQueue()<<' ';
    cout<<endl;
    return 0;
}
幸巴达
2013-10-12 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6953
采纳率:38%
帮助的人:2479万
展开全部
意思是同一个类别或者分组的元素必须挨着。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式