1.创建链节点类link
只有一种数据int类型,和对下一个链节点的引用next
public class Link {
public int a;
public Link next;
public Link(int m){
a=m;
}
public void displayLink(){
System.out.print(a +" ");
}
}
2.创建双端链表FirstLastList
public class FirstLastList {
private Link first;
private Link last;
public void FirstLastList(){
first=null;
last=null;
}
public boolean isEmpty(){
return (first==null);
}
public void insertLast(int a){ //链表尾部插入数据
Link newLink =new Link(a);
if (isEmpty()){
first=newLink;
}else {
last.next=newLink;
}
last=newLink;
}
public int deleteFirst(){ //默认非空 //链表头部删除数据
int temp=first.a;
if (first.next==null){
last=null;
}
first=first.next;
return temp;
}
public void displayLinklist(){ //显示
Link current=first;
System.out.println("链表数据为:");
while (current!=null){
current.displayLink();
current=current.next;
}
System.out.println(" ");
}
}
3.创建LinkQueue类对FirstLastList中的方法进行封装
public class LinkQueue {
private FirstLastList theList;
public LinkQueue(){
theList=new FirstLastList();
}
public void insert (int a){ //入队
theList.insertLast(a);
}
public int deleteFirst(){ //出队
return theList.deleteFirst();
}
public boolean isEmpty(){
return (theList.isEmpty());
}
public void display(){
System.out.print("队头--->>队尾的");
theList.displayLinklist();
}
}
**4.测试类LinkQueueApp **
public class LinkQueueApp {
public static void main(String args[]){
LinkQueue l=new LinkQueue();
l.insert(5);
l.insert(4);
l.insert(3);
l.display();
l.deleteFirst();
l.display();
}
}
测试结果: