(十)链表—双端链表

本文介绍了一种使用Java实现双端链表的方法。通过维护指向第一个和最后一个节点的引用,可以方便地在链表两端进行元素的插入和删除操作。

一、双端链表简介

双端链表和一般的链表相似,但是它拥有最后一个链结点的引用,这样方便在最后一个元素后面插入元素。双端链表结构如图所示:

双端链表

二、Java语言描述双端链表

package com.solid.link;

public class FirstLastLink {

//指向第一个结点的引用

private Link first;

//指向最后一个结点的引用

private Link last;

/**

* 双端链表构造方法

*/

public FirstLastLink() {

first = null;

last = null;

}

/**

* 判断是否为空

* @return

*/

public boolean isEmpty() {

return (first==null);

}

/**

* 在双端链表最后插入元素

* @param iDate

*/

public void insertLast(int iDate) {

Link link = new Link(iDate);

if(isEmpty()) {

first = link;

} else {

last.next = link;

}

last = link;

}

/**

* 在双端链表最前面插入元素

* @param iDate

*/

public void insertFirst(int iDate) {

Link link = new Link(iDate);

if(isEmpty()) {

last = link;

}

link.next = first;

first = link;

}

/**

* 删除双端链表第一个元素

* @return

*/

public Link deleteFirst() {

Link temp = first;

if(first.next == null) {

last = null;

}

first = first.next;

return temp;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值