一道课程讲解,不太明白,求指导。
程序代码:
public class Count3Quit2 { public static void main(String[] args) { KidCircle kc = new KidCircle(500); int countNum = 0; Kid k = kc.first; while(kc.count > 1) { countNum ++; if(countNum == 3) { countNum = 0; kc.delete(k); } k = k.right; } System.out.println(kc.first.id); } } class Kid { int id; Kid left; Kid right; //这里定义了left和right他们是kid类里面的变量 } class KidCircle { int count = 0; Kid first, last;//这里定义first,last,他们是kidcircle类里面的变量 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.left.right = k.right;//这里也不明白,left是kidcircle类里面的变量,为什么KID类的对象K,能用它?真的不懂,请指导。谢谢 k.right.left = k.left; if(k == first) { first = k.right; } else if( k == last) { last = k.left; } } count --; } }