创建一个节点类
/** * @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.在列添加第一个元素时:头指针和尾指针要指向同一个元素(没有头结点的队列);