链表队列号移动



我有一个输入链表队列[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中。

最新更新