資料結構04 C語言佇列

2021-10-23 18:25:59 字數 1766 閱讀 6221

前面三次的鏈結如下:

資料結構01----單鏈表

資料結構02----雙鏈表

資料結構03----棧

本篇來說一下資料結構中的佇列。

佇列是是一種先進先出(fifo)的線性表,只允許在一端進行插入(入隊)操作,在另一端進行刪除(出隊)操作。

佇列中,允許入隊操作的一端叫做隊尾,允許出隊操作的一端叫做隊頭。

和之前的棧一樣,c語言實現分兩種講解:鏈佇列和順序佇列。

1.鏈佇列

在鍊錶的基礎上,按照先進先出的原則運算元據。

c語言程式設計思路:

①結點定義;

②鍊錶初始化; 定義頭結點,賦值給頭指標、尾指標

③入隊: 尾插

出隊: 刪除首元結點,釋放堆空間

如下圖:

上圖對應的c程式如下:

#include

#include

//1、定義鍊錶節點

typedef

struct link

link;

//2、初始化

link *

init_link

(void

)//3、入隊,相當於尾插

void

enqueue

(link *

*head,

int elem)

node->next=

null

; temp->next=node;

}//4、出隊:相當於刪除首元節點

link *

dequeue

(link *head)

else

return head;

}int

main

(int argc,

char

const

*ar**)

執行結果如下:

2.順序佇列

把申請的空間想象成環狀空間。

c語言程式設計思路:

①定義陣列,存放陣列大小的巨集,頭尾指標並賦初值;

②入隊; 先判斷是否已滿。

出隊; 先判斷是否為空。

如下圖:

對應程式設計例項如下:

#include

void

enqueue

(int

*a,int

*tail,

int elem)

else

}void

dequeue

(int

*a,int

*head,

int*tail)

else

}int

main

(int argc,

char

const

*ar**)

執行結果:

04 C語言基本語法

c 語言的程式 由各種令牌組成,令牌可以是關鍵字 識別符號 常量 字串值,或者是乙個符號。例如,下方的c語句包括5個令牌 printf hello,world n 5個令牌分別是 printf hello,world n c語言中,每乙個語句都必須以分號結束。它表明乙個邏輯實體的結束。分號是語句結束...

資料結構 佇列04

佇列是限制在兩端進行插入操作和刪除操作的線性表,允許進行存入操作的一端稱為 隊尾 允許進行刪除操作的一端稱為 隊頭 當線性表中沒有元素時,稱為 空隊 特點 先進先出 fifo 佇列的特徵 特殊的線性表,先進先出 fifo 1 資料 對於非空的佇列,表頭沒有直接前驅,表尾沒有直接後繼,其它有且僅有乙個...

C語言 資料結構 佇列

1 佇列簡介 佇列是一種特殊的線性表,它只允許在表的前端進行刪除操作,而在表的後端進行插入操作,進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列中沒有元素時,稱為空佇列。2 佇列的聲名 和棧不同,我將鍊錶中的每個元素新增上頭指標與尾指標 還有乙個計數器,判空時可以直接拿來用 將其變成乙個佇列...