【JAVA数据结构】先进先出队列
2016-09-21 22:11
387 查看
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
下面直接来看实现:
调用以下方法来查看结果:
执行结果:
如有疑问,欢迎提出。
我的博客:blog.scarlettbai.com
下面直接来看实现:
/** * <p>先进先出队列</p> * * @author white * @version $Id: MyQueen, v 0.1 2016/9/21 0021 下午 8:32 white Exp $ */ public class MyQueen<T> { /** 队列第一个元素 */ 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<String> myQueen = new MyQueen<String>(); 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:0 initSize:15 aaa0 aaa1 aaa2 aaa3 aaa4 aaa5 aaa6 aaa7 aaa8 aaa9 aaa10 aaa11 aaa12 aaa13 aaa14 popSize:0
如有疑问,欢迎提出。
我的博客:blog.scarlettbai.com
相关文章推荐
- 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法 在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。
- java数据结构之队列
- java数据结构--队列
- 数据结构_栈、队列和树(Java)
- Java数据结构--------堆栈和队列
- java 实现数据结构之队列
- java数据结构,实现栈/队列
- java 实现数据结构之队列
- java实现数据结构——栈Stack与队列Queue
- Java 数据结构之Deque(双向队列)
- 数据结构队列的java实现,包括线性和链式两种方式
- java数据结构之LinkedQueue(用链表实现的双端单向队列)
- Java 数据结构----Java队列Queue
- java中的数据结构---栈、队列和树的实现
- JAVA数据结构--队列及优先队伍
- 数据结构的Java实现——栈和队列
- JAVA数据结构--队列
- java数据结构 - 栈、队列、优先队列
- 【数据结构】之队列的java实现(二)
- java实现 数据结构:链表、 栈、 队列、优先级队列、哈希表