(C語言)資料結構 佇列 棧

2021-08-16 05:54:53 字數 2214 閱讀 3440

12 佇列 queue:入隊 put、出對get

1 /*

2 * file: queue_linkedlist.c

3 * ********************====

4 * 佇列 queue

5 * 入隊 put:放在鍊錶尾部,並更新指向鍊錶尾部的指標tail

6 * 出隊 get: 返回並刪除鍊錶頭部節點,並更新指向鍊錶頭部的指標head

7 */

8 9 #include "queue_linkedlist.h"

10 11 // static 限制全域性變數的作用域

12 static struct node *head = null, *tail = null;

13 14 // static 限制函式作用域,只作用於本檔案

15 static struct node *new(int data)

16 22

23 int queueget()

24 31

32 void queueput(int data)

33 39 tail->next = new(data);

40 tail = tail->next;

41 }

42 43 void queueempty()

44 52 head = tail = null;

53 }

1 /*

2 * file: queue_linkedlist.h

3 * ********************====

4 */

5 6 #include 7

8 struct node;

12 13 int queueget();

14 void queueput(int data);

15 void queueempty();

棧 stack:入棧push、出棧pop

1 /*

2 * file: stack_linkedlist.c

3 * ********************====

4 * 棧 stack 後進先出

5 * 入棧 push:放在鍊錶頭部,並更新煉表頭指標head

6 * 出棧 pop:返回並刪除鍊錶頭部節點,並更新煉表頭指標head

7 */

8 9 #include "stack_linkedlist.h"

10 11 // static 靜態全域性變數,限制了全域性變數的作用域

12 static struct stacknode *head = null;

13 14 // static 靜態函式,限制了函式的作用域

15 static struct stacknode *new(int data, struct stacknode *head)

16 22

23 void stackpush(int data)

24 27

28 int stackpop()

29 36

37 void stackempty()

38 46 head = null;

47 }

/*

* file: stack_linkedlist.h

* ********************====

*/#include struct stacknode;

void stackpush(int data);

int stackpop();

void stackempty();

C語言資料結構 棧 佇列

ifndef zydl h define zydl h include head.h define stack int size 100 define stackincrement 10 define duqueue max size 10 define maxqsize 100 typedef i...

資料結構 棧和佇列(c語言)

棧和佇列是兩種重要的線性結構。從資料結構角度來看,棧和佇列也是線性表,其特殊性在於棧和佇列的基本操作是線性表操作的子集,他們是操作受限制的線性表,因此,可稱為限定性的資料結構。但從資料型別角度看,它們是和線性表大不相同的兩類重要的抽象資料型別。由於它們廣泛應用在各種軟體系統中,因此在物件導向的程式設...

資料結構 棧與佇列(C語言)

2.迴圈佇列的實現 總結本文就介紹了資料結構中兩大基礎儲存結構,棧與佇列的基礎內容。棧 stack 又名堆疊,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。這一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧 入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成...