[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 + " ");}}}


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 指纹打卡机时间调错已打卡怎么办 智慧云平台先锋讲座打不开怎么办 下雨穿套裙工装好冷怎么办 国家债务违约不要国际融资怎么办 欠钱的确还不起怎么办 生完孩孑后手发账握不死手怎么办 工作调动没啥消息怎么办 裁剪刀老是推歪怎么办 衣服上粘胶水了怎么办 衣服钻掉了有胶怎么办 衣服上贴纸掉了怎么办 裤子沾上502胶水怎么办 衣服上沾泡沫胶怎么办 衣服上面滴上502怎么办 502胶水弄衣服上怎么办 裤子上粘了胶怎么办 胶水滴在衣服上怎么办 衣服上有502胶水怎么办 衣服上面粘了胶怎么办 衣服上的胶干了怎么办 凌晨4点到火车站怎么办 运管罚款没钱交怎么办 郑州地铁票没买怎么办 遇到吸毒者拦路威胁要钱怎么办 开车遇见拦路要钱的怎么办 高速上有人拦车怎么办 马路上有人拦车怎么办 苹果手机下截软件要钱怎么办 孩子在学校问同学要钱怎么办 在学校被同学要钱怎么办 把人家店砸了要怎么办 外汇出金不到账怎么办 把罚款单弄丢了怎么办 在12306买不到下铺怎么办有 地铁票买反了怎么办 香港买错特惠票怎么办 到达迪拜t3 后怎么办 海藻面膜调多了怎么办 被鸡爪子抓伤了怎么办 被鸡抓伤肿了怎么办 护士电子化没有激活码怎么办