/**
* 双端链表操作
* Create by Administrator
* 2018/6/14 0014
* 下午 2:05
**/
class Link1 {
public long dData;
public Link1 next;
public Link1(int id) {
this.dData = id;
}
public void displayLink() {
System.out.print(dData + " ");
}
}
public class FirstLastList {
private Link1 first;
private Link1 last;
public FirstLastList() {
this.first = null;
this.last = null;
}
public boolean isEmpty(){ //判断链表是否为空
return (first == null);
}
public long deleteFirst(){
long temp = first.dData;
if(first.next == null){
last = null;
}
first = first.next;
return temp;
}
public void insertFirst(int id){
Link1 link = new Link1(id);
if(isEmpty()){
last = link;
}
link.next = first; //储存对象的引用
first = link; //把当前对象赋值给first
}
public void insertLast(int id){
Link1 newLink = new Link1(id);
if (isEmpty()){
first = newLink;
}else {
last.next = newLink;
}
last = newLink;
}
public void displayList(){
System.out.print("List (first-->last): ");
Link1 current = first;
while(current != null){
current.displayLink();
current = current.next;
}
System.out.println("");
}
public static void main(String[] args) {
FirstLastList theList = new FirstLastList();
theList.insertFirst(22);
theList.insertFirst(44);
theList.insertFirst(66);
theList.insertLast(11);
theList.insertLast(33);
theList.insertLast(55);
theList.displayList();
theList.deleteFirst();
theList.deleteFirst();
theList.displayList();
}
}