数3退1(面向对象思想)

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;
}


class KidCircle {
    
int count = 0;
    Kid first, 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.left.right 
= k.right;
            k.right.left 
= k.left;
            
            
if(k == first) {
                first 
= k.right;
            }
 else if( k == last) {
                last 
= k.left;
            }

        }

        count
--;
    }

}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值