《啊哈!算法》学习笔记之队列

列队的主要特点:先进先出

文中题目

规则是这样的:首先将第 1个数删除,紧接着将第 2 个数放到这串数的末尾,再将第 3 个数删除并将第 4 个数放到这串数的末尾,再将第 5 个数删除……直到剩下最后一个数,将最后一个数也删除。按照刚才删除的顺序,把这些删除的数连在一起就是小哈的 QQ啦.

Java实现

例如:加密过的一串数是 “6 3 1 7 5 8 9 2 4”,输出应该是“6 1 5 9 4 7 2 8 3”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public static void main(String[] args) {
int[] array = { 6, 3, 1, 7, 5, 8, 9, 2, 4 };
int[] queue = new int[100];
int head = 0;
int tail = 0;
for (int i = 0; i < array.length; i++) {
queue[i] = array[i];
tail++;
}
while (head < tail) {
System.out.println(queue[head]);
head++;
queue[tail] = queue[head];
tail++;
head++;
}
}