Java資料結構-佇列結構
阿新 • • 發佈:2018-12-13
佇列結構的特殊之處在於它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。
對列結構的分類
- 普通對列結構
- 雙端對列結構
- 優先順序佇列結構
用Java實現普通佇列結構
public class Quene {
private int size;//佇列長度
private int front;//隊頭索引
private int rear;//隊尾索引
private int[] theQuene;//用陣列構造佇列結構
private int items;//當前佇列的元素數
public Quene(int size){
this.size = size;
theQuene = new int[size];
front = 0;
rear = -1;
items = 0;
}
//入隊
public void insert(int value){
if(rear == size - 1){
//已經滿隊,另隊尾為-1,從隊頭插入
rear = -1;
}
theQuene[++rear] = value;
items++;
}
//出隊
public int remove(){
int temp = theQuene[front++];
if(front == size){
front = 0;
}
items--;
return temp;
}
//檢視隊頭
public int peek(){
return theQuene[front];
}
//是否為空隊
public boolean isEmpty(){
return (items == 0);
}
//是否為滿隊
public boolean isFull(){
return (items == size);
}
//對列當前元素數
public int sizeOf(){
return items;
}
}