packagedouble_link;
/**
*@authorzhou shengshuai
*
*/
classLink {
intvalue;
Link PreviousLink;
Link NextLink;
publicLink(int value) {
this.value = value;
}
}
classCircle_DoubleLink {
privateLinkfirstLink;
privateLinklastLink;
publicCircle_DoubleLink() {
this.firstLink=null;
this.lastLink=null;
}
publicvoidinsertFirst(Link link) {
link.PreviousLink=lastLink;
if(firstLink ==null) {
lastLink = link;
//link.NextLink = null;
} else{
lastLink.NextLink = link;
link.NextLink =firstLink;
firstLink.PreviousLink = link;
}
firstLink= link;
}
publicvoidinsertLast(Link link) {
link.NextLink=firstLink;
if(lastLink ==null) {
firstLink = link;
//link.PreviousLink = null;
} else{
firstLink.PreviousLink = link;
lastLink.NextLink = link;
link.PreviousLink =lastLink;
}
lastLink= link;
}
publicvoiddisplay() {
Link currentLink = firstLink;
while(currentLink !=null) {
System.out.print(currentLink.value);
currentLink = currentLink.NextLink;
if (currentLink ==firstLink) {
break;
} else {
System.out.print("<==>");
}
}
System.out.println();
}
}
publicclassDoubleLinkTest {
/**
*@paramargs
*/
publicstatic voidmain(String[] args) {
Circle_DoubleLinkc_dl_first =new Circle_DoubleLink();
System.out.println("========Circle Double Link InsertFirst========");
c_dl_first.insertFirst(newLink(5));
c_dl_first.insertFirst(newLink(2));
c_dl_first.insertFirst(newLink(0));
c_dl_first.insertFirst(newLink(7));
c_dl_first.insertFirst(newLink(8));
c_dl_first.insertFirst(newLink(6));
c_dl_first.insertFirst(newLink(9));
c_dl_first.insertFirst(newLink(1));
c_dl_first.display();
/
Circle_DoubleLinkc_dl_last =new Circle_DoubleLink();
System.out.println("========Circle Double Link InsertLast========");
c_dl_last.insertLast(newLink(5));
c_dl_last.insertLast(newLink(2));
c_dl_last.insertLast(newLink(0));
c_dl_last.insertLast(newLink(7));
c_dl_last.insertLast(newLink(8));
c_dl_last.insertLast(newLink(6));
c_dl_last.insertLast(newLink(9));
c_dl_last.insertLast(newLink(1));
c_dl_last.display();
}
}