队列---先进先出
所以需要两个指针控制进出。
并且防止混乱我在这里进入队列采用的是尾插法,这样可以保证顺序不会乱。
进入队列时,直接按顺序插入链表尾部即可。
出队则直接从头结点出即可。
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版权协议,转载请附上原文出处链接和本声明。