优先队列插入

发布于 2024-11-13 11:36:56 字数 976 浏览 2 评论 0原文

我正在研究一种使用霍夫曼方法插入优先级队列的方法。但是我不断收到相同的错误:

     prioque.c:46: error: expected ")" before "prioque_ref"

我的结构是:

typedef struct prioque *prioque_ref;
struct prioque {
    int dim;
    int last;
    prioque_item *array;
    cmpfn_prioque cmpfn;
};

我的代码有问题:

void insert_prioque (prioque prioque_ref *queue, prioque_item item) {
    assert ( queue->last < queue->dim -1);

    ++queue->last;
    queue->array[queue->last] = item;
    int curr = last;

    while (curr != ROOT) {
        int parent = PARENT(curr);
        int *parentptr = &queue->array[parent];
        int *curptr = &queue->array[curr];

        if (*parentptr > *currptr)
            break;

        int tmp = *currptr;
        *currptr = *parentptr;
        *parentptr = tmp;
        curr = parent;
    }

    DEBUGF ('p', "queue=%p, item=%p\n", queue, item);
}

我在这里做错了什么?

Im working on a method for insertion into priority queue using the huffman method. However I keep getting the same error:

     prioque.c:46: error: expected ")" before "prioque_ref"

my structures are:

typedef struct prioque *prioque_ref;
struct prioque {
    int dim;
    int last;
    prioque_item *array;
    cmpfn_prioque cmpfn;
};

my code in question:

void insert_prioque (prioque prioque_ref *queue, prioque_item item) {
    assert ( queue->last < queue->dim -1);

    ++queue->last;
    queue->array[queue->last] = item;
    int curr = last;

    while (curr != ROOT) {
        int parent = PARENT(curr);
        int *parentptr = &queue->array[parent];
        int *curptr = &queue->array[curr];

        if (*parentptr > *currptr)
            break;

        int tmp = *currptr;
        *currptr = *parentptr;
        *parentptr = tmp;
        curr = parent;
    }

    DEBUGF ('p', "queue=%p, item=%p\n", queue, item);
}

What am i doing wrong here??

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

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

发布评论

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

评论(1

灯角 2024-11-20 11:36:56

您已经为 prioque * 完成了 typedef

void insert_prioque (prioque prioque_ref *queue, prioque_item item)
                         // ^ complaining about this space

所以,它应该是 -

void insert_prioque (prioque_ref queue, prioque_item item) { /* .... */ }

You have already done a typedef for prioque *

void insert_prioque (prioque prioque_ref *queue, prioque_item item)
                         // ^ complaining about this space

So, it should be -

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