一、双端链表简介
双端链表和一般的链表相似,但是它拥有最后一个链结点的引用,这样方便在最后一个元素后面插入元素。双端链表结构如图所示:
二、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;
}
}