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

2021-10-01 16:31:21 字數 1909 閱讀 7653

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...