package DoubleLink;
public class Link {
/**
* 双端链表 链接点 和普通的链表的链接点相同
*/
public float data;
public Link next;
public Link(float data){
this.data = data;
}
@Override
public String toString() {
return "Link [data=" + data + "]";
}
}
public class DoubleList {
/**
* 双端链表
* @author hp
*/
private Link first;
private Link last;
public DoubleList(){
//完成First和last变量的初始化
first = null;
last = null;
}
//判断链表是否为空
public boolean isEmpty(){
return first == null;
}
//开头插入一个数据
public void insertFirst(float data){
Link link = new Link(data);
if(isEmpty()){
last = link;
}
link.next = first;
first = link;
}
//结尾插入一个数据
public void insertLast(float data){
Link link = new Link(data);
if(isEmpty()) first = link;
else last.next = link;
last = link;
}
//删除开头第一个数据
public float deleteFirst(){
float temp = first.data;
if(first.next == null){
last= null;
}
first = first.next;
return temp;
}
//遍历全部的元素
@Override
public String toString() {
StringBuffer sb =new StringBuffer();
Link current = first;
while(current != null){
sb.append(current.data+" ");
current = current.next;
}
return sb.toString();
}
}