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

一、创建双端链表

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


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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值