【第五节】Java代码实现双端链表

来源:互联网 发布:整型数据的输出格式 编辑:程序博客网 时间:2024/06/03 13:57

双端链表的物理存储形式

package com.java.chapterFive;/** * 双端链表 * @author DearMind-Hack * */public class FirstLastApp {    /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        FirstLastList theList=new FirstLastList();        theList.insertFirst(22);        theList.insertFirst(44);        theList.insertFirst(88);        theList.insertLast(11);        theList.insertLast(33);        theList.insertLast(55);        theList.displayList();        theList.deleteFirst();        theList.deleteFirst();        theList.displayList();    }//end      main}//////////////////////////////////////////////////////////////////////////////////////class FirstLastList{            private Link first;            private Link last;//--------------------------------------------------------------------------------------            public FirstLastList(){                first=null;                last=null;            }//---------------------------------------------------------------------------------            public boolean isEmpty(){                return first==null;            }//-----------------------------------------------------------            public void insertFirst(long dd){        Link newLink=new Link(dd);        if(isEmpty())            last=newLink;                           //如果为空,那么last指向最后        newLink.next=first;                     //让刚刚生成的节点指下一个节点        first=newLink;                              //让first指向刚生成的节点            }//--------------------------------------------------------------------------------            public void insertLast(long dd){                Link newLink=new Link(dd);                if(isEmpty())                    first=newLink;                else                    last.next=newLink;                last=newLink;            }//------------------------------------------------------------------------------            public long deleteFirst(){                          long temp=first.LData;          //删除first指向的数据                if(first.next==null)                    last=null;                first=first.next;                                   return temp;                        //返回头结点指向的数据            }//-------------------------------------------------------------            public void displayList(){                System.out.print("List  (first--->last):  ");                Link current=first;                while(current!=null){                    current.displayLongLink();                    current=current.next;                }        System.out.println("  ");            }}//end   class   FirstLastlist
0 0