优先级队列C.

时间:2011-04-25 15:15:05

标签: c queue linked-list

我正在尝试使用队列数组创建priority queue,数组的每个索引都是优先级。我尝试了以下解决方案,

队列数据类型包含数组llist,

Queue *q_create(int size)
{
struct queue *p;
struct q_head *h;
int i;

if ((p = (struct queue *)malloc(sizeof(struct queue))) != NULL) {
    p->size = size;
    for (i = 0; i < PRIODIFF; i++) {
        h = &(p->llist[i]);
        h->head = NULL;
        h->tail = NULL;
    }
}
return p;
}

我对这句话感到困惑:h = &(p->llist[i]); 我在想llist[i] = h。 这是用C写它的另一种方式吗?我正在以h = the address of llist[i]的形式阅读它。 这是对的吗?

由于

2 个答案:

答案 0 :(得分:2)

  

我正在读它,因为h = llist的地址[i]这是正确的吗?

答案 1 :(得分:1)

是的,您应将其视为将p->llist[i]的地址指定给h。这与llist[i] = h不同。

此代码使用h作为简写,以避免必须为后续两行输入p->llist[i]两次。