資料結構 陣列模擬環形佇列

2021-10-10 01:44:10 字數 841 閱讀 6166

front指向佇列的第乙個元素,且front的初始值為0

若不留有空位置,rear指向佇列的末尾元素的下乙個位置,會導致隊滿的時候與隊空的時候判斷條件會是一樣的,都是rear == front

當佇列滿時,條件是(rear + 1)% maxsize = front

隊列為空的條件,rear == front

這樣分析時,佇列中有效元素的個數為(rear + maxsize - front) % maxsize

這樣就能夠得到乙個環形佇列

class

circlequeue

/** * 新增元素

* @param i

*/public

void

addqueue

(int i)

else

}/**

* 移除元素

*/public

void

removequeue()

else

}/**

* 判斷佇列是否滿

* @return

*/public

boolean

isfull()

/** * 判斷佇列是否為空

* @return

*/public

boolean

isempty()

/** * 列印陣列

*/public

void

print()

}/**

* 求迴圈佇列目前元素個數

*/public

intsize()

}

資料結構 陣列模擬環形佇列

一 用陣列模擬佇列時,要考慮到復用的效果,所以用環形佇列來表示 二 陣列模擬環形佇列中 往佇列裡新增資料 思路 先判斷佇列是否為滿,rear 1 maxsize front 將資料加入佇列,arr rear n 將隊尾指標往後移,rear要取模,rear rear 1 maxsize 三 往佇列裡取...

資料結構03 陣列模擬環形佇列

1.分析佇列滿的條件是 rear 1 maxsize front 2.分析rear向後移的條件 rear rear 1 maxsize 3.分析front向後移的條件 front front 1 maxsize 程式退出 class circlearrayqueue 判斷佇列是否已滿 public ...

資料結構 陣列模擬的非環形佇列

佇列與棧類似,但是主要區別是棧是先進後出,而佇列則是先進先出的。非環形佇列 class arrayqueue 判斷佇列是否滿 private boolean isfull 判斷佇列是否為空 private boolean isempty 新增資料到佇列 void addqueue int n rea...