队列
有时候,我们会遇到一些数字密码游戏,比如,给出一串数字: 4,6,8,3,5,2,2,6,0,解密规则是这样的,首先将第1个数删除,紧接着将第2个数字放到这串数的末尾,再将第3个数删除并将第4个数放到这串数的末尾,再将第5个数删除……如此往复,直到最后一个数也删除。按照刚才删除的顺序,将这些删除的数连在一起就是我们需要得到的目标数字。OK,这时候,拿出纸和笔,或者用一些小便签或者小卡片,将这9个数字分别写下来,开始模拟解密过程~
其实解密的过程就像是将这些数进行排队,每次从最前面拿两个,第1个扔掉,第2个放到末尾,如果不出意外的话,你能得到的目标数字串是:4,8,5,2,0,3,6,2,6。
在算法的世界里,没错,它就是队列,那么我们怎么用代码形式来实现它呢?
首先需要一个容器来存放这些数字,这里我们使用ArrayList,因为它的大小可以随着我们的需要而动态的增加,定义如下:
1 ArrayList Quenum = new ArrayList(); 2 Quenum.Add(4); 3 Quenum.Add(6); 4 Quenum.Add(8); 5 Quenum.Add(3); 6 Quenum.Add(5); 7 Quenum.Add(2); 8 Quenum.Add(2); 9 Quenum.Add(6); 10 Quenum.Add(0);