java使用链表实现队列

来源:互联网 发布:苹果笔记本软件下载 编辑:程序博客网 时间:2024/05/17 06:18

队列使用Java进行链表实现,在网上找到了一张图,很好,借鉴一下


设置两个结点node,front指向队首元素,rear指向队尾;

上代码:

public class LinkedQueue {    Node front;//队头指针,指向队头节点    Node rail;//队尾指针,指向队尾节点    int size = 0;//记录队列长度    //构造函数    public LinkedQueue() {        front = rail = null;    }    public boolean isEmpty() {        return size == 0 ? true : false;    }    //添加元素    public boolean addQueue(Object ele) {        if (size == 0) {            front = new Node(null, ele);            rail = front;            size++;            return true;        }        Node s = new Node(null, ele);        //这块有个主意的地方,一旦rail设置了next属性,因为front节点与rail节点指向了同一个node节点,持有同一个结点的一个引用,因此front节点next属性也被填充        rail.setNext(s);        rail = s;        size++;        return true;    }    /**     * 删除元素,出队列     * @return     */    public boolean deleteQueue() {        if (isEmpty()) {            System.out.println("当前队列为空");            return false;        }        front = front.next;        size--;        return true;    }    public static void main(String[] args) {        LinkedQueue queue = new LinkedQueue();        queue.addQueue(1);        queue.addQueue(2);        queue.addQueue(3);        queue.deleteQueue();    }}/** * 首先链表底层是一个个结点 */class Node {    Node next;    Object element;    public Node(Node next, Object element) {        this.next = next;        this.element = element;    }    public Node getNext() {        return next;    }    public void setNext(Node next) {        this.next = next;    }    public Object getElement() {        return element;    }    public void setElement(Object element) {        this.element = element;    }}

代码很少,但是思考却花了不少时间,记录我的学习历程

原创粉丝点击