我有一个输入链表队列[2,5,3,1,2,4]。如何在输出文件中将所有偶数移动到开头,将奇数移动到结尾?我不能改变数字的顺序,例如不能是[2,4,2,1,3,5]。它必须是[2,2,4,5,3,1]。我已经实现了队列,但我不知道如何进行排序。
使用另一个队列。所以你从两个队列开始:
q1: [2,5,3,1,2,4]
q2: []
你知道q1
的长度。
现在,从q1
的头部移除一个项目。如果是偶数,则将其添加到q2
。如果是奇数,则将其重新添加到q1
。对q1
中的每一项都执行此操作。它看起来像这样:
step 1:
q1: [5,3,1,2,4]
q2: [2]
step 2:
q1: [3,1,2,4,5]
q2: [2]
step 3:
q1: [1,2,4,5,3]
q2: [2]
step 4:
q1: [2,4,5,3,1]
q2: [2]
step 5:
q1: [4,5,3,1]
q2: [2,2]
step 6:
q1: [5,3,1]
q2: [2,2,4]
现在您已经将它们分为偶数和奇数,您可以从q1
中删除一些内容,并将它们添加到q2
中。