循环双链表算法

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();

    }

 

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值