前面三次的鏈結如下:
資料結構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 佇列的聲名 和棧不同,我將鍊錶中的每個元素新增上頭指標與尾指標 還有乙個計數器,判空時可以直接拿來用 將其變成乙個佇列...