[Java数据结构]线性表之队列Queue
来源:互联网 发布:一个算法的时间复杂度 编辑:程序博客网 时间:2024/05/18 19:20
》》原理
就像排队,先来的先走,后来的等在后面。
》》思路
定义一个数组存放,头指针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) {// 如果头指针等于长度了,头指针重置为0front = 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 + " ");}}}
阅读全文
0 0
- [Java数据结构]线性表之队列Queue
- Java 数据结构之 Queue(队列)
- Java数据结构-线性表之队列
- Java数据结构与算法之Queue队列
- 数据结构之队列queue
- [笔记]python数据结构之线性表:linkedlist链表,stack栈,queue队列
- 线性表数据结构解读(四)队列结构Queue
- [Java数据结构]线性表之优先级队列PriorityQueue
- java数据结构之线性队列的实现
- 数据结构之线性队列
- 数据结构之线性队列
- Java 数据结构----Java队列Queue
- 数据结构之线性表、栈、队列
- Java之--Queue队列
- Java数据结构-线性表,栈,队列
- java数据结构队列(Queue)之个人理解
- Java 数据结构之Queue
- Java数据结构之线性表
- 如何配置linux的IP地址
- JAVA通过Gearman实现MySQL到Redis的数据同步(异步复制)
- hello,C语言
- 洛谷P2910 [USACO08OPEN]寻宝之路Clear And Present Danger
- 代码
- [Java数据结构]线性表之队列Queue
- Linux中的磁盘共享---NFS与ISCSI
- Java总结第六章
- 安卓--请求网络链接判断网络状态--pizifusheng
- JavaWeb学习总结(十三)——使用Session防止表单重复提交
- mysql 重启
- spring boot 整合mybatis
- 长沙县公专星沙考场10月23号以开考,最新科目三操作要领分享
- 回溯法解0-1背包问题