和棧相反,佇列是一種先進先出(first in first out 縮寫為fifo)的線性表。它只允許在表的一端進行插入,而在另一端刪除元素。
雙端佇列:限定插入和刪除操作在表的兩端進行的線性表
-----單鏈佇列 佇列的鏈式儲存表示------
和線性表類似,佇列也可以有兩種儲存表示。用鍊錶表示的佇列簡稱鏈佇列。
typedef struct qnode qnode ,queueptr;
typedef struct linkqueue;
status initqueue(linkqueue & q)
status enqueue(linkqueue & q, qelemtype e)
p = (queueptr) malloc(sizeof(qnode));
if(!p) exit;
p->data = e; p->next = null;
q->rear ->next = p;
q->rear = p;
return ok;
}status dequeue(linkqueue & q,qelemtype &e)
if(q.front == q.rear) return error;
p = q.front->next;
e = q.data;
q.front ->next =p->next;
if(q.rear == p) q.rear= q.front;
free(p);
return ok;
-----迴圈佇列 佇列的順序儲存表示------
線性表 棧 佇列
輔助定義 define maxsize 5 define ok 0 define error 1 typedef int selemtype typedef int status 棧 順序 鏈式 相關結構體定義 順序棧 typedef struct sqstack 順序棧共享空間 typedef s...
線性表之佇列
與棧結構相對的是佇列結構,佇列結構就像生活中的排隊,其進出規則是 先進先出 對於排隊,想必大家都懂 先看一下結構定義 typedef struct array2array2 佇列的陣列實現要使用模運算,其實現原理是通過對下標進行模運算使陣列形成迴圈,頭尾相接。這樣就不用因為刪除元素而移動陣列了。陣列...
線性表 棧,佇列
1.3 棧 棧是一種先進後出的資料結構。只能在一端進行插入和刪除操作的特殊線性表。將資料進入棧稱為壓棧,資料出去稱為彈棧。壓棧 public void push t t 彈棧 public t pop 讓首結點指向第乙個結點的下乙個結點 head.next oldfirst.next 元素個數 1 ...