代码之家  ›  专栏  ›  技术社区  ›  Yuval Adam

c语言中的优先级队列实现

c
  •  7
  • Yuval Adam  · 技术社区  · 15 年前

    对于C有没有可靠而简单的优先级队列(链表优先,不需要)实现?

    一般来说,您使用什么c标准库?

    4 回复  |  直到 10 年前
        1
  •  0
  •   WhirlWind    15 年前

    退房 PQLib .

    我使用标准c标准库。;)

        2
  •  5
  •   dsh    10 年前

    PQLIB (目前接受的答案) 是不完整的 而且这个功能与发布时的文档不匹配。例如,pq_dequeue文档说它返回一个条目。实现返回空值。代码中有许多“待办”注释,例如“从堆中删除包含最高优先级项的节点”。缺少基本逻辑。

    对于任何寻找优先级队列的人:我建议您找到一些具有良好的、通过单元测试的代码。我不建议使用pqlib,除非它已经更新并且包含了测试。

    对于pqlib的所有者或任何推荐它的人:我假设这段代码是完整的,并且花了相当长的时间调试,直到我意识到它不是完整的,这是令人沮丧的。请不要推荐你没有尝试过或不知道正在进行的代码。

        3
  •  4
  •   AShelly    13 年前

    这个 source code 伴随着 Robert Sedgewick Algorithms in C, Parts 1-4 (Fundamental Algorithms, Data Structures, Sorting, Searching) 包含基于堆和基于列表的实现。请参阅第9章-优先级队列和堆。

        4
  •  3
  •   justinhj    14 年前

    我有一个用c编写的优先级队列,托管在google代码上。MIT许可

    https://code.google.com/p/pqueue-heap-c/source/browse/trunk/pqueue.cpp

    这段代码已经在一些项目中使用过,所以很可靠,但我是在98年写的,所以我不记得如何使用它。不要被CPP扩展误导。是直的C。