ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Queue 循环队列代码 java

2021-11-23 23:02:59  阅读:113  来源: 互联网

标签:java 队列 System Queue int maxSize front public rear


 1 package Queue;
 2 
 3 public class Queue {
 4     private int maxSize;
 5     private int front;
 6     private int rear;
 7     private int[] arr;
 8 
 9     public Queue(int maxSize){
10         this.maxSize=maxSize;
11         arr=new int[maxSize];
12     }
13 
14     public void init(){
15         front=0;
16         rear=0;
17     }
18 
19     public boolean isFull(){
20         return (rear+1)%maxSize==front;
21     }
22 
23     public boolean isEmpty(){
24         return rear==front;
25     }
26 
27     public void add(int value){
28         if(isFull())
29             System.out.println("isFull");
30         else{
31             arr[rear]=value;
32             rear=(rear+1)%maxSize;
33             System.out.println("add: "+value);
34         }
35     }
36 
37     public void delete(){
38         if(isEmpty())
39             System.out.println("isEmpty");
40         else{
41             System.out.println("delete: "+arr[front]);
42             front=(front+1)%maxSize;
43         }
44     }
45 
46     public void printQueue(){
47         if(isEmpty()){
48             System.out.println("isFull");
49         }else{
50             System.out.print("getQueue: ");
51             for (int i = (front+1)%maxSize; i <= rear; i=(i+1)%maxSize) {
52                 System.out.print(arr[i]+" ");
53             }
54             System.out.println();
55         }
56     }
57 
58     public int getHead(){
59         if(isEmpty()){
60             System.out.println("isEmpty");
61             return 0;
62         }
63         return arr[front];
64     }
65 }

在循环队列代码中:

front作为队列头部,也就是数组尾部。

rear作为队列尾部,也就是数组头部。

 

循环队列中具体判满条件为:数组长度等于maxSize-1,(有一个单位作为约定,数组无法被填满,即当数组长度等于maxSize-1时,就默认此队列满了)

标签:java,队列,System,Queue,int,maxSize,front,public,rear
来源: https://www.cnblogs.com/getyi/p/15595937.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有