功能说明
实现最小堆优先队列含 sift-up 与 sift-down 操作。push 追加并上筛恢复堆性质;pop 交换根与末元素、移除、下筛。两者 O(log n)。运行 printf “push 5\npush 1\npush 3\npop\npop\npop” | node pq.mjs 输出 1、3、5。最小堆;最大堆 push/pop 取负;支持重复值;不支持 decrease-key 或任意移除。
运行方式
printf "push 5\npush 1\npush 3\npop\npop\npop" | node pq.mjs
限制与后续
当前优先队列命令行工具实现覆盖最常见的使用路径。本译文依据英文原文完整重写,代码与命令与英文版本严格一致,可在本地按运行方式复现并核对结果。The heap is a min-heap; a max-heap would negate values on push and pop. Duplicate values are supported. The heap does not support decrease-key or arbitrary removal.若用于生产,请先补充输入校验、错误处理与日志,再结合自身环境调整node版本。