Java實現順序佇列

2021-07-15 14:31:54 字數 1413 閱讀 7815

佇列-操作受限的線性表。進行刪除的一端叫隊頭,進行插入的一端叫隊尾。

順序佇列用順序儲存。刪除隊首元素有兩種方式:

①不要求隊首元素必須在下標為零的陣列元素中;

每次刪除元素只需修改隊首指標的位置,令front=front+1;顯然優點為無須改變佇列元素的位置,缺點為front值隨刪除元素而不斷增加,整個佇列向後移動,隨著隊尾元素的不斷插入,必然會導致陣列後端沒有可用空間的情況,而陣列前端的大量空間卻被閒置。

②要求隊首元素必須在下標為零的陣列元素中;

每次刪除隊首元素,令所有元素元素向前移動乙個位置,顯然優點為不浪費空間,缺點為所有元素的位址都要改變,效率低。

為了克服以上缺點,假定陣列是迴圈的,即採用環狀模型來實現佇列。即將佇列在邏輯上置於乙個圓環上:

刪除,front順時針移動乙個位置;

插入,rear順時針移動乙個位置;

環狀佇列實現要求餘運算:

rear=(rear+1)%size;

front=(front+1)%size;

**:

public class aqueue

/*** 構造方法

* @param size 陣列大小

*/public aqueue(int size)

/*** 判斷是否已滿

* @return

*/public boolean isfull()

/*** 判斷是否為空

* @return

*/public boolean isempty()

/*** 在隊尾插入data為item的元素

* @param item 資料域

* @return 成功返回true

*/public boolean insert(t item)

queuearray[rear]=item;

rear=(rear+1)%size;//修改隊尾指標

count++;

return true;

} /**

* 刪除隊首元素

* @return 返回隊首元素值

*/public t delete()

t item=(t)queuearray[front];

front=(front+1)%size;

count--;

return item;

} /**

* 得到隊首元素值

* @return

*/public t getfront()

return (t)queuearray[front];

} /**

* 清空佇列

*/public void clear()

//測試

public static void main(string args)

}

java實現環形佇列的順序儲存

佇列 是一種操作受限的線性表,僅允許在表的一端進行插入,在表的另一端進行刪除。把進行插入的一端稱作隊尾,進行刪除的一端稱作隊首或隊頭。向佇列插入新元素稱為進隊或入隊,新元素進隊後就成為新的隊尾元素 從佇列中刪除元素稱為出隊或離隊,元素出隊後,其直接後繼元素就成為隊首元素 特點 先進先出 實現 如下 ...

實現順序佇列

佇列 queue 在電腦科學中,是一種先進先出的線性表。它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作。佇列可以採用順序儲存方式來實現 稱為順序佇列 或者採用鏈式儲存方式來實現 稱為鏈式佇列 實現順序佇列需要注意 1 採用順序儲存方式,需要預先分配空間,data ...

順序佇列的實現

include include typedef int elementtype 定義佇列元素型別 struct queue typedef struct queue protoqueue 佇列型別指標 protoqueue creatqueue int maxsize 建立佇列函式 bool isf...