优先级队列C

发布于 2024-11-02 23:40:23 字数 577 浏览 1 评论 0原文

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

队列数据类型包含数组 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 = llist[i] 的地址。 这是正确的吗?

谢谢

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 reading it as h = the address of llist[i].
Is this correct?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

睫毛上残留的泪 2024-11-09 23:40:23

我将其读为 h = llist[i] 的地址,正确吗?

是的。

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

Yes.

浅语花开 2024-11-09 23:40:23

是的,您应该将其理解为将 p->llist[i] 的地址分配给 h。这与 llist[i] = h 不同。

此代码使用 h 作为简写,以避免在后续两行中键入两次 p->llist[i]

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文