2
Algorithm 1. QUEUESTUFF(n)
Input: Integer n
1) Let Q = an empty Queue
2) For i = 1 to n
3) Q.Enqueue(i)
4) End For
5) For i = 1 to n-1
6) Let X = Q.Dequeue()
7) End For
8) Let X = Q.Dequeue()
Output: The contents of X

Q.Enqueue(X) add item X to the queue
X = Q.Dequeue() extracts an item from the queue and assigns it to X. 
If the queue is empty then -999 is returned.

n > 0 の場合、このアルゴリズムは n-1 を出力することを理解しています。たとえば、n=6 の場合、5 に等しい X が出力されます。

しかし、n < 0 の場合はどうなるでしょうか。ループは 1 から負の数に変更できますか? そうでない場合... Forループは実行されず、-999の出力が得られると思います(キューが空であるため)。

ただし、ループがマイナスになる可能性がある場合は、n = -2 としましょう。キューは {1, 0, -1, -2} になります。次に、1 ~ -3 回デキューする必要があります... X を作成する (デキューが適用された最後のアイテム) -2. では、このアルゴリズムは何を返すのでしょうか? ほとんど n=X 正しいですか?

4

1 に答える 1