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,将输出 X 将等于 5。
但是,如果 n < 0 怎么办?循环可以从 1 变为负数吗?如果不是...我相信没有一个 For 循环会运行,给我们一个 -999 的输出(因为队列是空的)。
但是,如果循环可以变成负数,那么假设 n= -2。队列为 {1, 0, -1, -2}。然后我们将不得不出队 1 到 -3 次...使 X(应用出队的最后一项)-2。那么现在这个算法返回了什么?几乎 n=X 正确吗?