请按以下要求编程实现:
①    从键盘输入整数m,通过create函数生成一个具有m个结点的单向环表。环表中的结点编号依次为1,2,……,m。
②    从键盘输入整数s(1<=s<=m)和n,从环表的第s个结点开始计数为1,当计数到第n个结点时,输出该第n结点对应的编号,将该结点从环表中消除,从输出结点的下一个结点开始重新计数到n,这样,不断进行计数,不断进行输出,直到输出了这个环表的全部结点为止。
例如,m=10,s=3,n=4。则输出序列为:6,10,4,9,5,2,1,3,8,7。

解决方案 »

  1.   

    import java.util.Calendar;public class start {public static void main(String[] args) {
    init();
    }private static void init()
    {
    //long t = Calendar.getInstance().getTimeInMillis();System.out.println("result:"+init(50,3));
    //System.out.println(Calendar.getInstance().getTimeInMillis()-t);
    }
    private static Body init(double i,double j)
    {Body head = new Body(0+"");
    Body p = head;
    if(i>0)
    {
    for(int ii=1;ii<i+1;ii++)
    {
    Body temp = new Body(""+ii);
    p.setNext(temp);
    p = temp;
    }
    p.setNext(head.getNext());
    }while(!head.getNext().equals(head))
    {for(int iii=0;iii<j-1;iii++)
    {
    head = head.getNext();
    }
    p = head.getNext();
    head.setNext(p.getNext());
    p = null;
    }
    return head;
    }}
    class Body{
    Body next;
    String name;
    public Body()
    {
    super();
    }
    public Body(String name)
    {
    this();
    this.name = name;
    }
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public Body getNext() {
    return next;
    }
    public void setNext(Body next) {
    this.next = next;
    }
    public String toString()
    {
    return name;
    }
    public boolean equals(Body body)
    {
    return body.getName().equals(this.getName());
    }
    }
      

  2.   

    理论上说都可以吧?
    思考方向往sql之类的转变?
      

  3.   

    我觉得还是用TUBRO C做对自己的锻炼比较大,用JAVA太简单了,达不到联系的目的;
    记得这是严老太那本数据结构习题上的题目