Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 使用SJF(SPN)算法推送队列_C_Algorithm_Queue_Scheduling - Fatal编程技术网

C 使用SJF(SPN)算法推送队列

C 使用SJF(SPN)算法推送队列,c,algorithm,queue,scheduling,C,Algorithm,Queue,Scheduling,我有一个队列,我想使用SJF算法(也称为SPN最短进程)进入这个队列 我使用一个函数来估计工作。我想要推送的元素是结构,我使用该结构的参数获得作业。例如: typedef struct { int* a; int* b; }element; getJob(element*){ int job = element->a * element->b; return job; } 不管该函数是如何定义的,我想知道如何使用它实现SJF或SPN算法。我认为优先级队列是您需要的。这里有几个

我有一个队列,我想使用SJF算法(也称为SPN最短进程)进入这个队列 我使用一个函数来估计工作。我想要推送的元素是结构,我使用该结构的参数获得作业。例如:

typedef struct {
 int* a;
 int* b;
}element;

getJob(element*){
int job = element->a * element->b;
return job;
}

不管该函数是如何定义的,我想知道如何使用它实现SJF或SPN算法。

我认为优先级队列是您需要的。这里有几个实现,也是针对c的,只要稍作修改,就可以用于您的目的

此数据结构只允许两种操作

插入一个元素 提取优先级最高的那个 在您的情况下,优先级越高,作业的优先级越低。

帮助我了解优先级队列。我需要在元素进入队列时对它们进行组织。我会找一些例子,谢谢。