- 最後登錄
- 2023-1-19
- 在線時間
- 41 小時
- 註冊時間
- 2009-5-17
- 閱讀權限
- 50
- 精華
- 0
- UID
- 6397582
- 帖子
- 1178
- 積分
- 7656 點
- 潛水值
- 45763 米
| 本帖最後由 cynthialar 於 2011-10-18 11:21 PM 編輯
請問一下,要如何解決環形Queue的一個空白位置處理?也就是說如果我的陣列大小是5個,但是因為環形Queue的關係,所以會有一格是沒存進去的,且會顯示滿的,我的code如下: - class homeworkqueue{
- public static void main(String[] args){
- queue testnumber = new queue();
- testnumber.enqueue(30);
- testnumber.enqueue(50);
- testnumber.enqueue(40);
- testnumber.enqueue(10);
- testnumber.enqueue(20);
- //testnumber.enqueue(100);
- for(int i = 0; i < 5; i++)
- System.out.println(testnumber.dequeue());
- }
- }
- class queue{
- public int[] number = new int[5];
- public int f = 0; //head
- public int r = 0; //tail
- public void enqueue(int num){
- if(is_full() == true){
- System.out.println("It's full!!");
- }
- else{
- number[f] = num;
- f = (f + 1) % 5;
- }
- }
- public boolean is_full(){
- if((f + 1) % 5 == r)
- return true;
- else
- return false;
- }
- public int dequeue(){
- if(is_empty() == true){
- System.out.print("It's empty!! ");
- return -1;
- }
- else{
- int tmp = number[r];
- r = (r + 1) % 5;
- return tmp;
- }
- }
- public boolean is_empty(){
- if(r == f)
- return true;
- else
- return false;
- }
- }
複製代碼
我想過很多方法了,但是就是一直寫不出來,請問各位要如何去寫呢? 謝謝... |
|