佇列-操作受限的線性表。進行刪除的一端叫隊頭,進行插入的一端叫隊尾。
順序佇列用順序儲存。刪除隊首元素有兩種方式:
①不要求隊首元素必須在下標為零的陣列元素中;
每次刪除元素只需修改隊首指標的位置,令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...