天天看点

Exception in thread "main" java.lang.Error: 无法解析的编译问题:

public class Demo3 {

 public static void main(String[] args) {

  CycLink cyclink=new CycLink();

  CycLink.setLen(10);

  CycLink.CreateLink();

  CycLink.show();

     CycLink.setK(3);

  CycLink.setM(3);

  CycLink.play();

 }

}

class Child

{

 int no;

 Child nextChild=null;

 public Child(int no)

 {

  //给一个编号

  this.no=no;

 }

}

 //环形链表

class CycLink

 {

  //先定义一个指向链表第一个小孩的引用

  //指向第一个小孩的引用不能动

  Child firstChild=null;

  Child temp=null;

  //表示共有几个小孩

  int Len=0;

  int k=0;

  int m=0;

  //确定数数的步长m

  public void setM(int m)

  {

   this.m=m;

  }

  //设置链表大小

  public void setLen(int len)

  {

   this.Len=len;

  }

  //设置从第几个人开始数数

  public void setK(int k)

  {

   this.k=k;

  }

  //开始play

  public void play()

  {

   Child temp=this.firstChild;

   //先找到开始数数的人

   for(int i=1;i<k;i++)

   {

    temp=temp.nextChild;

   }

   while (this.Len!=1)

   {

    //2.数m下

    for (int j=1;j<m;j++)

    {

     temp=temp.nextChild;

    }

    //找到要出圈的前一个小孩

    Child temp2=temp;

    while(temp2.nextChild != temp)

    {

     temp2=temp2.nextChild;

    }

    //3.将数到的小孩退出圈

    temp2.nextChild=temp.nextChild;

    //让temp指向下一个数数的小孩

    temp=temp.nextChild;

    this.Len--;     

   }

   //最后一个小孩

   System.out.println("最后出圈的孩子是:"+temp.no);

  }

  //初始化环形链表

  public void CreateLink()

  {

   for(int i=1;i<=Len;i++)

   {

    //创建第一个小孩

    if (i==1)

    {

     Child ch=new Child(i);

     this.firstChild=ch;

     this.temp=ch;

    }

    else

    {

     if (i != Len)

     {

      //继续创建小孩

      Child ch=new Child(i);

      temp.nextChild=ch;

      temp=ch;

      temp.nextChild=this.firstChild;

     }

     else

     {

      //继续创建小孩

      Child ch=new Child(i);

      temp.nextChild=ch;

      temp=ch;

     }

    }

   }

  }

  //打印该环形链接

  public void show()

  {

   //定义一个跑龙套的

   Child temp=this.firstChild;

   do

   {

    System.out.println(temp.no);

    temp=temp.nextChild;

   }while(temp != this.firstChild);

  }

 }

转载于:https://blog.51cto.com/11154783/1784275