/** * * @author Administrator * 功能:丢手帕问题 */ package com.litao; public class Demo4 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub CycLink cycLink = new CycLink(); cycLink.setLen(9); cycLink.createLink(); cycLink.show(); } } //节点 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; //设置链表的大小 public void setLen(int len) { this.len = len; } //初始化环形链表 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 >= 2 && i != len){ //继续创建小孩 Child ch = new Child(i); temp.nextChild = ch; temp = ch; } else if(i == len) { Child ch = new Child(i); temp.nextChild = ch; temp = ch; temp.nextChild = firstChild; } } } //打印该环形链表 public void show() { //定义一个跑龙套的 Child temp = this.firstChild; do{ System.out.println(temp.no); temp = temp.nextChild; }while(temp != firstChild); } }
时间: 2024-10-05 04:25:35