第05章 数组 11 练习9
鱼欲遇雨:每日都学习一点,持之以恒,天道酬勤!不能用电脑时,提前补上!(2012.8.23)
注:23号回学校,提前补这一天!
小练习:
500个人,一个人开始数,1,2,3,1,2,3.。。是3的人退出,一直循环都最后一个人,这个人是第几个人?(面向对象的解法)
//Count3Quit2.javapublic class Count3Quit2 {public static void main(String args[]) {KidCircle kc = new KidCircle(500);}}class Kid {int id;Kid left;Kid right;}class KidCircle {int count = 0;Kid first;Kid last;KidCircle(int n) {for(int i=0; i<n; i++) {add();}}void add() {Kid k = new Kid();k.id = count;if(count == 0) {first = k;last = k;k.left = k;k.right = k;}else {last.right = k;k.left = last;k.right = first;first.left = k;last = k;}count++;}void delete(Kid k) {if(count == 0) {return;}else if(count == 1) {first = last = null;}else { k.right.left = k.left; k.left.right = k.right; if(k == first) { first = k.right; }else if(k == last) { last = k.left; }}count--;}}