[Java数据结构]线性表之队列Queue
2017-12-11 19:52
591 查看
》》原理
就像排队,先来的先走,后来的等在后面。》》思路
定义一个数组存放,头指针front指向表头,每次移走一个元素front+1,rear指向头尾,每次增加一个元素rear+1。注意移走和插入的指针指向的区别。》》代码
package 栈和队列; class queueArr { private int maxSize; private long[] queArr; private int front;// 队头 private int rear;// 队尾 private int n; public queueArr(int s) { maxSize = s; queArr = new long[maxSize]; front = 0; rear = -1; n = 0; } public void insert(int i) { if (!isFull()) { // if (rear == maxSize - 1) {//如果不加这个判断,就会出现数组越界报错了 // rear = -1;// 如果加上这句,队尾绕回低端,后加的数会从头排进去 // } // 如果是低端,rear+1=0,又是数组 queArr[++rear] = i; n++; } } public long remove() { long temp = queArr[front++]; if (front == maxSize) {// 如果头指针等于长度了,头指针重置为0 front = 0; } if (!isEmpty()) { n--; }// 为空后n就不再减下去 return temp; } public void peekn() { System.out.println("数量" + n); } public boolean isEmpty() { return n == 0; } public boolean isFull() { return n == maxSize; } } public class Queue { public static void main(String[] args) { queueArr arr = new queueArr(5); arr.insert(1); arr.insert(3); arr.insert(4); arr.insert(5); arr.insert(7); arr.insert(9); arr.insert(9); arr.insert(9); arr.insert(9); arr.remove(); arr.peekn(); while (!arr.isEmpty()) { long n = arr.remove(); System.out.print(n + " "); } } }
相关文章推荐
- ※数据结构※→☆线性表结构(queue)☆============优先队列 顺序存储结构(queue priority sequence)(十一)
- Java数据结构-线性表之队列
- Java数据结构-线性表之队列
- java数据结构——6队列(Queue)
- 【Java数据结构学习笔记之三】Java数据结构与算法之队列(Queue)实现
- [置顶] ※数据结构※→☆线性表结构(queue)☆============优先队列 链式存储结构(queue priority list)(十二)
- ※数据结构※→☆线性表结构(queue)☆============优先队列 链式存储结构(queue priority list)(十二)
- 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法 在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。
- [置顶] ※数据结构※→☆线性表结构(queue)☆============队列 顺序存储结构(queue sequence)(八)
- ※数据结构※→☆线性表结构(queue)☆============队列 链式存储结构(queue list)(九)
- ※数据结构※→☆线性表结构(queue)☆============队列 顺序存储结构(queue sequence)(八)
- java中自己用过的数据结构(队列Queue、优先级队列PriorityQueue和栈Stack),及其分别的应用场景
- java数据结构之LinkedQueue(用链表实现的双端单向队列)
- 【Java数据结构学习笔记之三】Java数据结构与算法之队列(Queue)实现
- Java 数据结构----Java队列Queue
- java实现数据结构——栈Stack与队列Queue
- Java数组模拟优先级队列数据结构的实例
- 队列是一种特殊的线性表。LinkedList类实现了Queue接口,我们可以把LinkedList当成Queue来用。
- Java 队列(Queue)用法
- Java 并发 --- 阻塞队列之DelayQueue源码分析