思路:
- 1、循環隊列和非循環隊列類似,但是要注意隊列空和隊列滿的情況
- 2、隊列空 tail = head
- 3、隊列滿 (tail+1)%capacity = head
/**
* 循數組實現循環隊列
* Author : BlueSky 2019.11.05
* 思路:
* 1、循環隊列和非循環隊列類似,但是要注意隊列空和隊列滿的情況
* 2、隊列空 tail = head
* 3、隊列滿 (tail+1)%capacity = head
*/
public class ArrayCircularQueue {
public static class CircularQueue{
/**
* 數組
*/
private String[] array;
/**
* 容量
*/
private Integer capacity;
/**
* 頭指針
*/
private Integer head = 0;
/**
* 尾指針
*/
private Integer tail = 0;
public boolean add(String data){
int i = (tail + 1) % capacity;
if( i == head){
return false;
}
// 賦值
array[tail] = data;
// 尾指針復位
tail = i;
return true;
}
public String poll(){
if(tail.equals(head)){
return null;
}
// 取值
String res = array[head];
// 頭指針復位
head = (head + 1) % capacity;
return res;
}
}
}