程序员社区

对列(java实现)

Node

package com.qyc.Queue;

public class Node<E> {
    Node<E> next = null;
    E date;

    public Node(E date) {
        // TODO 自动生成的构造函数存根
        this.date = date;
    }
}

MyQueue

package com.qyc.Queue;

public class MyQueue<E> {
    public Node<E> head = null;
    public Node<E> tail = null;

    public boolean isEmpty() {
        return head == tail;
    }

    public void put(E data) {
        Node<E> newNode = new Node<E>(data);
        if (head == null && tail == null) {
            head = tail = newNode;
        } else {
            tail.next = newNode;
            tail = newNode;
        }
    }

    public E pop() {
        if (this.isEmpty()) {
            return null;
        }
        E data = head.date;
        head = head.next;
        return data;
    }

    public int size() {
        Node<E> node = head;
        int i = 0;
        while (node != null) {
            i++;
            node = node.next;
        }
        return i;
    }
}

Test

package com.qyc.Queue;

import java.awt.geom.QuadCurve2D;

public class TestQueue {
    public static void main(String[] args) {
        MyQueue<Integer> myQueue = new MyQueue<>();
        myQueue.put(1);
        myQueue.put(2);
        myQueue.put(3);
        myQueue.put(4);
        System.out.println(myQueue.size());

        myQueue.pop();
        System.out.println("对头:"+myQueue.head.date+"\n"+"对尾:"+myQueue.tail.date);
    }
}

4
对头:2
对尾:4

赞(0) 打赏
未经允许不得转载:IDEA激活码 » 对列(java实现)

一个分享Java & Python知识的社区