java实现队列-链表存储

创建一个节点类

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

上一篇:部分列表内置,元组,集合内置方法


下一篇:LeetCode 21 合并两个有序链表