在c语言中创建和处理随机数量的队列

在c语言中创建和处理随机数量的队列,c,queue,C,Queue,我正在创建一个需要能够创建/处理大量队列的程序。 我使用此代码处理程序中的1个队列。如果我想根据这段代码添加更多队列,我该怎么做?如果每个队列的大小根据随机数的生成而变化,那么会有问题吗 typedef int Item; typedef struct node *link; struct node{ Item data; link next; }; int QUEUEempty(link head){ return head == NULL; } void QUEU

我正在创建一个需要能够创建/处理大量队列的程序。 我使用此代码处理程序中的1个队列。如果我想根据这段代码添加更多队列,我该怎么做?如果每个队列的大小根据随机数的生成而变化,那么会有问题吗

typedef int Item;
typedef struct node *link;
struct node{
    Item data;
    link next;
};

int QUEUEempty(link head){
    return head == NULL;
}

void QUEUEput(link *head, link *tail, Item data){
    if (*head == NULL){
        (*tail) = (link)malloc(sizeof(node));
        (*tail)->data = data;
        (*tail)->next = NULL;
        *head = *tail;
        return;
    }
    (*tail)->next = (link)malloc(sizeof(node));
    *tail = (*tail)->next;
    (*tail)->data = data;
    (*tail)->next = NULL;
    return;
}
Item QUEUEget(link *head){
    Item data = (*head)->data;
    link t = *head;
    *head = (*head)->next;
    free(t);
    return data;
}

是否创建另一个
链接
?你还试了什么?你的尝试是如何起作用的,还是没有起作用的?我正试图从理论上理解它是如何起作用的。你说的另一个链接是什么意思?它能像使用参数调用函数一样工作吗?像
link queue1=malloc(sizeof*queue1),queue2=malloc(sizeof*queue2)维奥拉,现在你有两个队列。你需要在使用它们之前初始化它们。我明白了。你指的是头,尾=NULL,对吗?如果您想为queue1调用QUEUEput,请通过
queue1.QUEUEput()
执行,如果我理解正确的话。有没有一种方法可以使用您在a中发布的行,用于在开始时提示用户输入限制(如
queue[i]
)?@chux在代码审查时,这可能与主题无关,因为OP会问一个特定的操作问题,即:“如果我想根据此代码添加更多队列,我该如何做?”并且不要求进行一般的代码审查。如果问题离题或过于宽泛,无法解决堆栈溢出问题,请进行相应的投票,但不要推荐其他网站,除非您确定该网站的主题是。谢谢。您是否创建了另一个
链接
?你还试了什么?你的尝试是如何起作用的,还是没有起作用的?我正试图从理论上理解它是如何起作用的。你说的另一个链接是什么意思?它能像使用参数调用函数一样工作吗?像
link queue1=malloc(sizeof*queue1),queue2=malloc(sizeof*queue2)维奥拉,现在你有两个队列。你需要在使用它们之前初始化它们。我明白了。你指的是头,尾=NULL,对吗?如果您想为queue1调用QUEUEput,请通过
queue1.QUEUEput()
执行,如果我理解正确的话。有没有一种方法可以使用您在a中发布的行,用于在开始时提示用户输入限制(如
queue[i]
)?@chux在代码审查时,这可能与主题无关,因为OP会问一个特定的操作问题,即:“如果我想根据此代码添加更多队列,我该如何做?”并且不要求进行一般的代码审查。如果问题离题或过于宽泛,无法解决堆栈溢出问题,请进行相应的投票,但不要推荐其他网站,除非您确定该网站的主题是。非常感谢。