線性表 佇列

2022-02-18 23:55:27 字數 2157 閱讀 1902

和棧相反,佇列是一種先進先出(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 ...