← 中文资源

简体中文版本

优先队列命令行工具

一个 Node 命令行工具:实现二叉堆优先队列,从标准输入接受 push/pop 并按优先级打印弹出值。

阅读英文原文

功能说明

实现最小堆优先队列含 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版本。