开发者

Priority Queue C

开发者 https://www.devze.com 2023-02-28 19:27 出处:网络
I\'m trying to create a priority queue using an array of queues, each index of the array being a priority. I tried the following solution,

I'm trying to create a priority queue using an array of queues, each index of the array being a priority. I tried the following solution,

The queue data type contains an array 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;
}

I'm confused by the line: h = &(p->llist[i]); I was thinking that llist[i] = h. Is this another way of writing it in C? I'm readin开发者_开发技巧g it as h = the address of llist[i]. Is this correct?

Thanks


I'm reading it as h = the address of llist[i] Is that correct?

Yes.


Yes, you should read that as assign the address of p->llist[i] to h. This is not the same as llist[i] = h.

This code is using h as a short-hand to avoid having to type p->llist[i] twice for the two subsequent lines.

0

精彩评论

暂无评论...
验证码 换一张
取 消