这是一个非常常见的问题,但我在任何地方都没有找到明确的答案。 我正在做的是使用2个堆栈实现Queue,并且在节点和数据中,我也保持最小值和最大值。实现在Java中完成。
现在,问题是如果first element is Max / Min
和我deQueue它,那么其余的节点包含最小/最大值作为出列的值。
示例:10 7 8 9 2
节点 - [数据,最大,最小]
[10,10,10] , [7,10,7] ,[8,10,7] , [9,10,7] , [2,10,2]
现在,如果我将其出列,则队列为:[7,10,7] ,[8,10,7] , [9,10,7] , [2,10,2]
最小值和最大值都是错误的(10,7),应该是(9,2)。
我的算法基本上适用于堆栈,我正在使用队列。那么如何修改我的算法以使其得到正确的结果呢?