博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【JAVA数据结构】先进先出队列
阅读量:4077 次
发布时间:2019-05-25

本文共 1914 字,大约阅读时间需要 6 分钟。

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

下面直接来看实现:

/** * 

先进先出队列

* * @author white * @version $Id: MyQueen, v 0.1 2016/9/21 0021 下午 8:32 white Exp $ */public class MyQueen
{
/** 队列第一个元素 */ private Node first; /** 队列最后元素 */ private Node last; /** 队列大小 */ private int size = 0; /** 队列结构 */ private class Node {
T item; Node next; } /** * 队列是否为空 * @return */ public boolean isEmpty() { return size == 0; } /** * 将元素压入队列尾部 * @param item */ public void push(T item) { if (size == 0) { first = new Node(); first.item = item; last = first; size++; } else if (size > 0) { Node newLast = new Node(); newLast.item = item; last.next = newLast; last = newLast; size++; } } /** * 取出队列的第一个元素 * @return */ public T pop() { if (size == 0) { throw new ArrayIndexOutOfBoundsException(); } Node oldFirst = first; first = first.next; size--; return oldFirst.item; } /** * 取队列深度 * @return */ public int size() { return size; }}

调用以下方法来查看结果:

public static void main(String[] args) {        MyQueen
myQueen = new MyQueen
(); System.out.println("cosSize:" + myQueen.size()); for (int i = 0; i < 15; i++) { myQueen.push("aaa" + i); } System.out.println("initSize:" + myQueen.size()); for (int i = 0; i < 15; i++) { System.out.println(myQueen.pop()); } System.out.println("popSize:" + myQueen.size()); }

执行结果:

cosSize:0initSize:15aaa0aaa1aaa2aaa3aaa4aaa5aaa6aaa7aaa8aaa9aaa10aaa11aaa12aaa13aaa14popSize:0

如有疑问,欢迎提出。


我的博客:blog.scarlettbai.com

转载地址:http://xesni.baihongyu.com/

你可能感兴趣的文章
kubernetes中文文档
查看>>
K8S 容器之间通讯方式
查看>>
我看Kubernetes的操作不需要图形界面,只需要命令行就可以了,所以买个云服务器就可以弄了应该。
查看>>
现在来看,做个普罗米修斯的docker镜像对我而言并不难,对PX4仿真环境配置也熟悉了。
查看>>
删除docker容器和镜像的命令
查看>>
Docker run 命令
查看>>
Docker容器的创建、启动、和停止
查看>>
XTDrone的docker仿真镜像使用注意
查看>>
对ROS/普罗米修斯中线程锁的使用的理解
查看>>
VINS-Fusion Intel® RealSense™ Depth Camera D435i
查看>>
使用Realsense D435i运行VINS-Fusion并建图
查看>>
realsense d435i 跑 vins-fusion
查看>>
在Intel nuc上配置D435i、运行VINS-Mono及问题记录
查看>>
视觉SLAM——D435i运行VINS-MONO
查看>>
Ubuntu添加和删除源
查看>>
最优化算法——常见优化算法分类及总结
查看>>
卡尔曼滤波有若干种推导方式
查看>>
CDKF、UKF和EKF滤波算法
查看>>
Git tag标签与branch分支的区别
查看>>
对matlab simulink库的中文说明网站
查看>>