如何创建新队列

时间:2017-05-07 08:42:05

标签: c struct queue

我是编程C的新手。我尝试编程很多变得更好:) 但此刻我陷入了愚蠢的境地。

我有一个创建优先级队列的任务。我在开始时得到了这两个结构。

struct q_elem_s {
char* name;
int priority;
struct q_elem_s *next;
};

struct PrioQueue {
int size;       //size of the queue
q_elem *root; //Beginn of the queue
};

Normaly我对队列没有任何问题,但我对第二个结构感到困惑。

所以我的想法:

PrioQueue* pqueue_new() {
q_elem = malloc(sizeof(q_elem_s));
return NULL;
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

首先,您的代码中存在多个错误。 我在这里解释第二个结构的含义以及创建新优先级队列的正确功能应该是什么。 我还在您的代码中引入了必要的更改。

第一个结构定义队列中的单个节点。 而第二个结构代表一个队列 -

struct PrioQueue {
  int size;       //size of the queue
  struct q_elem_s *root; //Beginn of the queue
};

struct q_elem_s * root是头节点或根节点。

您的功能应该如下 -

struct PrioQueue* pqueue_new() {
    struct PrioQueue *queue = malloc(sizeof(struct PrioQueue));
    queue->root = NULL;
    return queue;
}