在c语言中创建和处理随机数量的队列
我正在创建一个需要能够创建/处理大量队列的程序。 我使用此代码处理程序中的1个队列。如果我想根据这段代码添加更多队列,我该怎么做?如果每个队列的大小根据随机数的生成而变化,那么会有问题吗在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
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会问一个特定的操作问题,即:“如果我想根据此代码添加更多队列,我该如何做?”并且不要求进行一般的代码审查。如果问题离题或过于宽泛,无法解决堆栈溢出问题,请进行相应的投票,但不要推荐其他网站,除非您确定该网站的主题是。非常感谢。