java---链表实现队列

 队列---先进先出

所以需要两个指针控制进出。

并且防止混乱我在这里进入队列采用的是尾插法,这样可以保证顺序不会乱。

进入队列时,直接按顺序插入链表尾部即可。

出队则直接从头结点出即可。

package com.Execise;

/**
 * @Author:XK
 * @Date: Created in 17:00 2022/1/16
 * @Description:
 **/
public class NodeQueueDemo {
    private Node header;//队列头
    private int elementCount;//元素个数
    private int size;//队列大小
    public NodeQueueDemo(){
        header=null;
        elementCount=0;
        size=10;
    }
    public void offer(int x){
        if(elementCount==size){
            System.out.println("queue is full!");
            return;
        }else if(elementCount==0){
            header=new Node();
            header.value=x;
            elementCount++;
        }else {
            Node node = new Node();
            node.value=x;
            Node tmp=header;
            while(tmp.next!=null){
                tmp=tmp.next;
            }
            tmp.next=node;
            elementCount++;
        }
    }

    public int poll(){
        if(elementCount==0){
            System.out.println("queue is empty!");
            return 0;
        }else{
            int i=header.value;
            header=header.next;
            elementCount--;
            return i;
        }
    }

    public static void main(String[] args) {
        NodeQueueDemo nodeQueueDemo = new NodeQueueDemo();
        nodeQueueDemo.offer(1);
        nodeQueueDemo.offer(2);
        nodeQueueDemo.offer(3);
        System.out.println(nodeQueueDemo.header);
        nodeQueueDemo.poll();
        System.out.println(nodeQueueDemo.header);

    }
}

1->2->3->null
2->3->null


版权声明:本文为Yoke______原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。