これは非常に一般的な質問ですが、明確な答えはどこにも見つかりませんでした。私がやっていることは、2 つの stacks を使用して Queue を実装することです。ノードでは、 data とともに、最小値と最大値も維持します。実装は Java で行われます。
さて、問題は、first element is Max / Min
それを deQueue すると、残りのノードには、dequeu されたものとして最小/最大値が含まれることです。
例 :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) である必要があります。
私のアルゴリズムは基本的にスタックに対して機能し、キューを使用しています。では、正しい結果が得られるようにアルゴリズムを変更するにはどうすればよいですか?