justblackbird / stable-priority-queue
优先队列的稳定实现
0.1.0
2020-08-22 11:49 UTC
Requires
- php: ^7.4
Requires (Dev)
- phpunit/phpunit: ^9.3
- squizlabs/php_codesniffer: ^3.5
- vimeo/psalm: ^3.14
This package is auto-updated.
Last update: 2024-09-22 21:13:39 UTC
README
PHP 中优先队列数据结构的稳定实现。
为什么
SPL 中已经有一个优先队列的实现: SplPriorityQueue
。问题是它是不稳定的。看看下面的例子
$q = new \SplPriorityQueue(); $q->insert(1, 0); $q->insert(2, 0); $q->insert(3, 0); $q->insert(4, 0); while (!$q->isEmpty()) { echo $q->extract() . " "; }
这个例子检索字符串 "1 4 3 2"
而不是 "1 2 3 4"
。这个库提供了一个实现,它按照它们出现的顺序提取相同优先级的值。上面的例子将返回 "1 2 3 4"
!
安装
composer require justblackbird/stable-priority-queue
用法
use JustBlackBird\StablePriorityQueue\Queue; $q = new Queue(); $q->insert(1, 0); $q->insert(2, 0); $q->insert(3, 0); $q->insert(4, 0); while (!$q->isEmpty()) { echo $q->extract() . " "; } // "1 2 3 4" will be outputted.
许可证
MIT (c) Dmitry Simushev