資料結構C(棧與佇列(2

2021-10-10 03:26:43 字數 1209 閱讀 4101

佇列我們可以看作是買票上車,遵循乙個「先進先出」的乙個原則。

操作:插入的操作叫隊尾入隊(enqueue)

刪除的操作叫對頭出隊(dequeue)

佇列的順序儲存

佇列的儲存結構是由 一維陣列來實現的。

乙個記錄佇列頭元素的位置的變數front

乙個記錄佇列尾元素的位置的變數rear

struct queue;
建立空佇列

struct queue*

creatqueue

(int maxsize)

當rear走到容量的末端的時候,還能入隊嗎?可以,rear可以折返。

//無論是入隊還是出隊,front與rear總是從小到大的增長;

//若超過了陣列的最大下標,front與rear折返回到下標0;

//隊列為空或滿的時候,front與rear都指向同一處,所以我們只用他們指向同一處來判斷佇列滿是不嚴謹的。所以就體現了size的作用。

還要注意小細節,front所指的位置是有資料的,而rear所指的位置是沒有資料的(在未滿的情況下);

入隊enqueue

將元素放入rear位置,然後rear+1;若+1後超過了最大下標,rear的下標置為0;

void

enqueue

(struct queue*q,

int x)

出隊dequeue

emlemenettype dequeue

(struct queue*q)

佇列的鏈式儲存

亦可以用單鏈表來儲存,這樣鍊錶的入隊出隊在鍊錶兩端進行。

在鍊錶尾入隊(就是線性表的尾插)

在煉表頭出隊(刪除第乙個結點,即頭結點後的結點)

struct qnode

;

亦可使用雙向鍊錶來完成。

資料結構複習(2) 棧與佇列

棧 順序棧top 1 or top 0 all right,c stack use 1 top 1時,棧空 top maxsize 1時,棧滿 top 1 棧長 top 0時,棧空 top maxsize 0時,棧滿 top 棧長。共享棧 1 top1 1,top2 maxsize時,棧空 2 to...

資料結構 棧與佇列

題目 1.編寫函式,採用鏈式儲存實現棧的初始化 入棧 出棧操作 2.編寫函式,採用順序儲存實現棧的初始化 入棧 出棧操作 3.編寫函式,採用鏈式儲存實現佇列的初始化 入隊 出隊操作 4.編寫函式,採用順序儲存實現佇列的初始化 入隊 出隊操作 5.編寫乙個主函式,在主函式中設計乙個簡單的選單,分別除錯...

資料結構 棧與佇列

棧的原則是後進先出,即插入與刪除元素均在棧頂進行。獲取棧頂元素 s.top 佇列的原則是先進先出,即插入資料在隊尾進行,刪除資料在隊頭進行。獲取隊頭元素 q.front 思路 用兩個棧,乙個棧用來進隊,乙個棧用來出隊,當資料進入佇列的時候,我們將其壓入乙個棧,當資料出隊的時候,我們將儲存在棧內的資料...