package 循环链表;
//Node表示的是一个节点
public class LoopNode {
public static void main(String[] args) {
LoopNode ln1 =new LoopNode(1);
LoopNode ln2 =new LoopNode(2);
LoopNode ln3 =new LoopNode(3);
LoopNode ln4 =new LoopNode(4);
//增加节点
ln1.AfterInsert(ln2);
System.out.println(ln1.next().date);
System.out.println(ln2.next().date);
ln2.AfterInsert(ln3);
System.out.println(ln3.next().date);
ln3.AfterInsert(ln4);
System.out.println(ln4.next().date);
}
//节点内容
int date;
//下一个节点
LoopNode next=this;
public LoopNode(int date)
{
this.date=date;
}
//插入一个节点
public void AfterInsert(LoopNode node)
{
//取出下一个节点,作为下下一个节点
LoopNode nextNext=next;
//把新节点作为当前节点的下一个节点
this.next=node;
//把下下一个节点设置为新节点的下一个节点
node.next=nextNext;
}
//删除下一个节点
public void removeNext()
{
//取出下下一个节点
LoopNode newNext = next.next;
//把下下一个节点设置为当前节点的下一个节点
this.next=newNext;
}
//获取下一个节点
public LoopNode next()
{
return this.next;
}
//获取节点中的数据
public int getDate()
{
return this.date;
}
}