创建一个节点类
/**
* @author
* @create 86153-2021
*/
public class Node {
public int age;
public String name;
Node next;
public Node(int age, String name) {
this.age = age;
this.name = name;
}
public Node() {
}
@Override
public String toString() {
return "Node{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
}
创建链表
/**
* @author
* @create 86153-2021
*/
public class NodeList {
Node font;
Node rear;
private int size;
/**
* 创建一个队列,在对象生成的时候就开始创建
*/
public NodeList() {
font=rear=null;
}
/**
* 判断队列是否为空
* @return
*/
public boolean isEmpty(){
return((rear==null&font==null)?true:false);
}
/**
* 进入队列
* @param node
*/
public void enList(Node node){
if(isEmpty()){
font=rear=node;
}else{
rear.next=node;
rear=node;
}
size++;
}
/**
* 出队列
* @return
*/
public String deList(){
if(isEmpty()){
return "llll";
}
Node p;
p=font;
font=p.next;
p.next=null;
size--;
if(size==0){
font=rear;
}else {
}
return p.toString();
}
/**
* 测试代码
* @param args
*/
public static void main(String[] args) {
NodeList l1=new NodeList();
Node a1=new Node(3,"sss");
Node a2=new Node(4,"dfds");
Node a3=new Node(5,"werfwefrwe");
Node a4=new Node(6,"sferfserfserfserfesrf");
l1.enList(a1);
l1.enList(a2);
l1.enList(a3);
l1.enList(a4);
System.out.println(l1.size);
System.out.println(l1.deList());
System.out.println(l1.deList());
System.out.println(l1.deList());
}
}
总结
1.判断队列是否为空时:rear和font都为空时,队列才为空。
2.在列添加第一个元素时:头指针和尾指针要指向同一个元素(没有头结点的队列);