1.分析佇列滿的條件是:(rear+1)%maxsize == front
2. 分析rear向後移的條件:rear = (rear+1)%maxsize
3.分析front向後移的條件:front=(front+1)%maxsize
("程式退出");
}}class
circlearrayqueue
//判斷佇列是否已滿
public
boolean
isfull()
//判斷佇列是否為空
public
boolean
isempty()
//新增資料到佇列
public
void
addqueue
(int n)
//直接將資料加入陣列即可
arr[rear]
=n;//將rear後移,這裡必須考慮取模
rear =
(rear+1)
%maxsize;
}//獲取佇列的資料,出佇列
public
intgetqueue()
//先把front對應的值儲存在乙個臨時變數中
//如果直接返回了,方法就結束了,就沒法讓front+1
int value = arr[front]
;//將front後移,考慮取模(陣列是有最大長度的,取模是為了保證陣列不越界)
//對maxsize取模能保證front值在0-maxsize之間,不會越界
front =
(front+1)
%maxsize;
//將臨時儲存的變數返回
return value;
}//顯示佇列的所有資料
public
void
showqueue()
for(
int i=front;i
size()
;i++)}
//當前佇列有效資料的個數
public
intsize()
//顯示頭元素
public
intheadqueue()
return arr[front];}
}
資料結構 陣列模擬環形佇列
一 用陣列模擬佇列時,要考慮到復用的效果,所以用環形佇列來表示 二 陣列模擬環形佇列中 往佇列裡新增資料 思路 先判斷佇列是否為滿,rear 1 maxsize front 將資料加入佇列,arr rear n 將隊尾指標往後移,rear要取模,rear rear 1 maxsize 三 往佇列裡取...
資料結構 陣列模擬環形佇列
front指向佇列的第乙個元素,且front的初始值為0 若不留有空位置,rear指向佇列的末尾元素的下乙個位置,會導致隊滿的時候與隊空的時候判斷條件會是一樣的,都是rear front 當佇列滿時,條件是 rear 1 maxsize front 隊列為空的條件,rear front 這樣分析時,...
資料結構 陣列模擬的非環形佇列
佇列與棧類似,但是主要區別是棧是先進後出,而佇列則是先進先出的。非環形佇列 class arrayqueue 判斷佇列是否滿 private boolean isfull 判斷佇列是否為空 private boolean isempty 新增資料到佇列 void addqueue int n rea...