The Queue Implementations With Array List

本文介绍了一个使用Java实现的数组队列(ArrayQueue)的数据结构。该队列包括基本操作如添加(add)、获取(get)、判断是否为空(isEmpty)及是否已满(isFull)等方法。当队列满且仍有数据加入时,会进行数据迁移以实现队列的循环利用。
 1 public class ArrayQueue
 2 {
 3     private int front = -1;
 4     
 5     private int rear = -1;
 6     
 7     private Object[] queue;
 8     
 9     public ArrayQueue(int size)
10     {    
11         queue = new Object[size];
12     }
13     
14     public boolean add(Object data)
15     {
16         if(isFull() == true)
17         {
18             return false;
19         }
20         
21         if((rear == queue.length - 1) && (front != -1))
22         {
23             int position = 0;
24             
25             for(int i = front + 1; i <= rear; i ++)
26             {
27                 queue[position] = queue[i];
28                 
29                 position ++;
30             }
31             
32             front = -1;
33             
34             rear = position - 1;
35         }
36         
37         queue[++ rear] = data;
38         
39         return true;
40     }
41     
42     public Object get()
43     {
44         if(isEmpty() == true)
45         {
46             return null;
47         }
48         
49         return queue[++ front];
50     }
51     
52     public boolean isEmpty()
53     {
54         if(front == rear)
55         {
56             return true;
57         }
58         else
59         {
60             return false;
61         }
62     }
63     
64     public boolean isFull()
65     {
66         if((rear == queue.length - 1) && (front == -1))
67         {
68             return true;
69         }
70         else
71         {
72             return false;
73         }
74     }
75     
76 }

 

转载于:https://www.cnblogs.com/StringBuilder/p/7521899.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值