java队列
- 队列定义
- 队列操作
- 链式队列实现
- 创建节点
- 创建队列
- 入队操作
- 出队操作
- 清空队列
- 测试
- 输出
队列定义
队列:队列是只允许在一端进行插入操作,而在另一端进行删除操作.
队列是一种先进先出(FIFO)的线性表,允许插入的一端称为队尾,允许删除的一端称为队头.
队列操作
入队:向队尾添加元素;
出队:获取并移除队头元素;
链式队列实现
创建节点
data:节点数据
next:指向下一个节点
class Node{
public integer data;
public Node next;
public Node(Integer data) {
super();
this.data = data;
}
}
创建队列
class queue{
//头节点
private Node front;
//尾节点
private Node rear;
//数据量
private Integer size = 0;
}
入队操作
public void enQueue(Integer data) {
Node n = new Node(data);
if(front == null) {
front = n;
rear = front;
}
else {
rear.next = n;
//非循环队列
rear = n;
//循环队列
//rear.next = front
}
size++;
}
出队操作
public Integer deQueue(){
if(front == null) {
return front.data;
}
else {
Integer data = front.data;
Node fNode = front;
front = fNode.next;
//将头节点指向null,等待垃圾回收器回收
fNode = null;
size--;
return data;
}
}
清空队列
public void clean() {
Node fNode = front;
while(fNode != null) {
front = fNode.next;
fNode = null;
fNode = front;
size--;
}
rear = null;
}
public String toString() {
String str = "The Queue data is : ";
Node fNode = front;
while(fNode != null) {
str += fNode.data + " ";
fNode = fNode.next;
}
str += "\t" + "the size is :" + size;
return str;
}
}
测试
public static void main(String[] args) {
// TODO Auto-generated method stub
Queue queue = new Queue();
System.out.println("队列插入操作");
queue.enQueue(20);
queue.enQueue(15);
queue.enQueue(10);
queue.enQueue(5);
System.out.println(queue.toString());
System.out.println("队列获取元素");
Integer data = queue.deQueue();
System.out.println("获取的元素为:" + data);
System.out.println(queue.toString());
System.out.println("队列清空元素");
queue.clean();
System.out.println(queue.toString());
}
输出
队列插入操作
The Queue data is : 20 15 10 5 the size is :4
队列获取元素
获取的元素为:20
The Queue data is : 15 10 5 the size is :3
队列清空元素
The Queue data is : the size is :0
相关阅读
消息队列为什么写这篇文章?博主有两位朋友分别是小A和小B:小A,工作于传统软件行业(某社保局的软件外包公司),每天工作内容就是和产
队列也是一种线性表,是一种先进先出的线性结构。队列只允许在表的一端进行插入(入队)、删除(出队)操作。允许插入的一端称为队尾,允
SWUSTOJ #965 循环队列题目输入输出样例输入样例输出源代码题目 根据给定的空间构造顺序循环队列,规定队满处理方法为少用一个元素
#include <bits/stdc++.h> using namespace std; const int maxn=10001; int main() { priority_queue<int>p; p.push(3)
前言当前笔记中的内容针对的是 thinkphp-queue 的 v1.1.2 版本,现在官方已经更新到了 v1.1.3 版本, 下文中提到的几个Bug在最新的ma