java数据结构与算法-双端链表

来源:互联网 发布:淘宝店主图设计 编辑:程序博客网 时间:2024/06/03 15:59

一、创建双端链表

mport android.util.Log;/** * Created by Xi on 2017/7/30. * 双端链表中链结点 */public class LinkFirstLast {    public double dData;    public LinkFirstLast next;//下一个结点    public LinkFirstLast(double dd){        dData=dd;    }    /**     * 展示链接点     */    public void displayLink(){        Log.i("LinkFirstLast",dData+"");    }}


import android.util.Log;/** * Created by Xi on 2017/7/30. * 双端链表 */public class LinkListFirstLast {    private static final String TAG="LinkListFirstLast";    private LinkFirstLast first;//链表的first标志结点,即首结点    private LinkFirstLast last;//链表的last标志结点,即末尾结点    public LinkListFirstLast(){        first=null;        last=null;    }    /**     * 在链表链首插入元素     */    public void insertFirst(double dd){        LinkFirstLast newLink=new LinkFirstLast(dd);//创建一个新链接点        if(isEmpty()){//如果是空链表            last=newLink;        }else{            newLink.next=first;        }        first=newLink;    }    /**     * 在链表链尾插入元素     */    public void insertLast(double dd){        LinkFirstLast newLink=new LinkFirstLast(dd);//创建一个新链接点        if(isEmpty()){//如果是空链表            first=newLink;        }else{            last.next=newLink;        }        last=newLink;    }    /**     * 判断链表是否为空     */    public boolean isEmpty(){        return first==null;    }    /**     * 删除连接点,从链表首删除     */    public double deleteFirst(){        double temp=first.dData;        if(first.next==null){            last=null;        }        first=first.next;        return temp;    }    /**     * 展示链表     */    public void displayList(){        Log.i(TAG,"List (first-->last):");        LinkFirstLast current=first;        while(current!=null){            current.displayLink();            current=current.next;        }    }}

二、调用函数如下:

/**     * 双端链表     */    public void link_firtlast(){        //创建链表,并添加结点。        LinkListFirstLast theList = new LinkListFirstLast();        theList.insertFirst(11);        theList.insertFirst(22);        theList.insertFirst(33);        theList.insertFirst(44);        theList.insertLast(55);        theList.displayList();        //循环删除结点,直到删光        Log.i(TAG,"Deleted ");        while (!theList.isEmpty()) {            double dd = theList.deleteFirst();            Log.i(TAG,"Deleted data"+dd);        }    }

日志打印如下:

08-14 18:33:20.353 9687-9687/com.tool.wpn.quicksort I/LinkListFirstLast: List (first-->last):
08-14 18:33:20.355 9687-9687/com.tool.wpn.quicksort I/LinkFirstLast: 44.0
08-14 18:33:20.355 9687-9687/com.tool.wpn.quicksort I/LinkFirstLast: 33.0
08-14 18:33:20.356 9687-9687/com.tool.wpn.quicksort I/LinkFirstLast: 22.0
08-14 18:33:20.356 9687-9687/com.tool.wpn.quicksort I/LinkFirstLast: 11.0
08-14 18:33:20.356 9687-9687/com.tool.wpn.quicksort I/LinkFirstLast: 55.0
08-14 18:33:20.356 9687-9687/com.tool.wpn.quicksort I/MainActivity: Deleted 
08-14 18:33:20.356 9687-9687/com.tool.wpn.quicksort I/MainActivity: Deleted data44.0
08-14 18:33:20.356 9687-9687/com.tool.wpn.quicksort I/MainActivity: Deleted data33.0
08-14 18:33:20.357 9687-9687/com.tool.wpn.quicksort I/MainActivity: Deleted data22.0
08-14 18:33:20.357 9687-9687/com.tool.wpn.quicksort I/MainActivity: Deleted data11.0
08-14 18:33:20.357 9687-9687/com.tool.wpn.quicksort I/MainActivity: Deleted data55.0


源码下载地址:点击打开链接


原创粉丝点击