普通队列
用于求 BFS 最短路,特点是先进先出,按层扩展,等价与在边权为 的图上找最短路。每个状态只入队一次,第一次入队时即为该状态的最少步数。时间复杂度为 。
双端队列
用于实现双端队列 BFS,维护队列的两端性。等价于在边权为 和 的图上找最短路。每个状态入队多次,第一次出队即为该状态的最少代价。时间复杂度还是 。
优先队列
用于实现 堆优化dijkstra ,功能有大根堆(完全二叉树)。等价于在边权为任意数值的图上找最短路,每个状态入队多次,只拓展一次,第一次出队时即该状态的最少代价。时间复杂度是 。
单调队列
用于实现单调队列优化 DP,维护队列的单调性。每个状态只入队一次,出队一次,维护队中序列的单调性,队头是最优转移。时间复杂度是 。