佇列(c語言實現)

2021-10-14 04:06:03 字數 1153 閱讀 2927

目錄前言

一、佇列是什麼?

二、佇列的屬性與操作以及種類

1.佇列屬性

2.佇列操作

3.佇列種類

三、佇列的實現(c語言) 總結

本文旨在幫助剛接觸佇列的人更快的掌握,語言不夠嚴謹,望海涵。栗子

一對情侶準備在情人節去電影院看電影,男的是個身穿格仔衫的程式設計師,我們就稱之為小木,由於排隊買票的人特別多,所以排了很長的隊,小木遵守道德,在隊伍最後面排隊。排了很久,發現前面隊伍一直不動,自己一直排在最後,小木就有點奇怪,往前一瞧,原來是排他後面的人都直接插到最前面去了,怪不得自己一直站在最後面。小木很生氣,找到工作人員,說,排對買票,不應該是先來的人先買票嗎?怎麼搞的像棧一樣,最先來的人還在排對?工作人員撓了一下頭,疑惑的問什麼站???小木想了一下,笑了一下,說別管什麼棧了,就是有人一直插隊,你們應該管理一下。後來,電影院派出了兩名保安人員出來維持秩序,小木等了一會就買到了票。

這裡:小木,所說的,先來的應該先買票就是佇列的核心思想。

佇列:fifo(first input first output)

定義:佇列是一種特殊的線性結構,只允許在佇列的首部進行刪除操作,這稱為出隊(即最先來的人買完票就應該走),而在佇列的尾部進行插入操作,這稱為入隊,(即後面來買票的人應該插在隊尾)

以下均是單向佇列的實現

1.陣列方法

#includeint main()

,head,tail;

head=1;

tail=10;//初始化佇列

while(head2.結構體方法

#includestruct queue;

int main()

while(q.head可以對比,陣列法與結構體法,其核心思想一樣,只是結構體將其所有定義封裝成乙個整體,在主函式main中就可以不用很麻煩的一直定義。

陣列法在主函式中

int q[100]=,head,tail;

head=1;

tail=10;

結構體法在主函式中只需定義: struct queue q;

雖然在這裡看不出有很大差別,但是當**量很大很大,有很多模組時,如果每個模組中均需要定義則很麻煩,結構體則省去了這些冗餘。

記住兩句話

佇列先進先出

隊列為空相當於隊首等於隊尾

佇列 c語言實現

佇列 先進先出 define minquesize 5 typedef struct treenode elemtype typedef struct myqueue myqueue creatqueue int capacity myqueue res malloc sizeof myqueue ...

C語言實現佇列

1 ifndef queue h 2 define queue h 34 include 5 6 typedef int qdatatype 資料型別 78 typedef struct listnode 通過鍊錶實現的 9listnode,plistnode 1314 typedef struct...

c語言push C語言實現佇列

棧的特點是先進後出,佇列的特點是先進先出,從這個特點可以知道,佇列是比較友好的,不像棧那樣最開始進去排隊的人,竟然是最後乙個出來的。因為我這個例程是使用鍊錶實現佇列的,所以新建乙個佇列,實際上就是開闢乙個記憶體空間,用來儲存佇列的頭部。跟棧一樣,我們理解了建立乙個佇列就是需要建立乙個頭,開闢的這個空...