优先队列插入

时间:2011-06-03 21:42:04

标签: c priority-queue

我正在研究一种使用huffman方法插入优先级队列的方法。但是我一直得到同样的错误:

     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);
}

我在这里做错了什么?

1 个答案:

答案 0 :(得分:4)

您已为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) { /* .... */ }