棧和佇列 4鏈式佇列

2021-10-02 06:15:59 字數 1154 閱讀 3327

@adrian

鏈式佇列的實現思想同順序佇列類似,只需建立兩個指標(命名為 top 和 rear)分別指向鍊錶中佇列的隊頭元素和隊尾元素,如圖 1 所示:

圖 1 所示為鏈式佇列的初始狀態,此時佇列中沒有儲存任何資料元素,因此 top 和 rear 指標都同時指向頭節點。

鏈式佇列資料入隊

鏈隊佇列中,當有新的資料元素入隊,只需進行以下 3 步操作:

由此,新節點就入隊成功了。

鏈式佇列資料出隊

鏈式佇列中隊頭元素出隊,需要做以下 3 步操作:

完整**示例:

#include

#include

//鍊錶中的結點結構

typedef

struct qnodeqnode;

//建立鏈式佇列的函式

qnode *

initqueue()

//資料入隊

qnode*

enqueue

(qnode*rear,

int data)

//資料出隊

qnode*

dequeue

(qnode*top,qnode*rear)

//1、

qnode*p=top->next;

printf

("%d "

,p->data)

; top->next=p->next;

if(rear==p)

free

(p);

return rear;

}int

main()

輸出結果:

鏈式棧 鏈式佇列 順序佇列

暑期學習第一天,學習了鏈式棧 鏈式佇列和順序佇列 這三種都是舉一反三的型別 鏈式棧標頭檔案 ifndef stack h define stack h define ok 0 define error 1 結點 typedef struct stacknode stacknode 棧 typedef...

佇列 鏈式佇列

主要是鏈式佇列用單鏈表來實現,說白了還是對單鏈表的應用。為了操作實現方便,這裡採用帶頭結點的單鏈表結構。鍊錶的頭部作為隊首,鍊錶的尾部作為隊尾。一共設定兩個指標,乙個隊首指標和乙個隊尾指標,如圖所示。package 佇列的實現 public inte ce queue package 佇列的實現 p...

鏈式棧與迴圈佇列

鏈式棧是一種資料儲存結構,可以通過單鏈表的方式來實現,使用鏈式棧的優點在於它能夠克服用陣列實現的順序棧空間利用率不高的特點,但是需要為每個棧元素分配額外的指標空間用來存放指標域。鏈式棧的定義及其基本操作 package practice 入棧使用頭結點 出棧只用刪除head.next class l...