順序儲存佇列標頭檔案:
1順序儲存佇列實現檔案:#pragma once
2 #include3 #include4
#define max_size 102456
//順序佇列結構體
7 typedef struct
seqqueue
8seqqueue;
1213
//初始化佇列
14 seqqueue*init_seqqueue();
15//
入隊16
void push_seqqueue(seqqueue* queue, void*value);
17//
出隊18
void pop_seqqueue(seqqueue*queue);
19//
返回隊首元素
20void* front_seqqueue(seqqueue*queue);
21//
返回隊尾元素
22void* back_seqqueue(seqqueue*queue);
23//
返回佇列長度
24int size_seqqueue(seqqueue*queue);
25//
清空佇列
26void clear_seqqueue(seqqueue*queue);
27//
銷毀佇列
28void free_seqqueue(seqqueue* queue);
1 #include "順序儲存佇列測試檔案:佇列順序儲存.h"2
//初始化佇列
3 seqqueue*init_seqqueue()410
11 queue->size = 0;12
for (int i = 0; i < max_size; ++i)
1316
17return
queue;18}
19//
入隊陣列左邊做隊頭
20void push_seqqueue(seqqueue* queue, void*value)
2126
27if (value ==null)
2831
32if (queue->size ==max_size)
3336
37 queue->data[queue->size] =value;
38 queue->size++;39}
40//
出隊41
void pop_seqqueue(seqqueue*queue)
4247
48if (queue->size == 0)49
5253
for (int i = 0; i < queue->size-1; ++i)
5457 queue->size--;58}
59//
返回隊首元素
60void* front_seqqueue(seqqueue*queue)
6166
67if (queue->size == 0)68
7172
return queue->data[0
];73}74
//返回隊尾元素
75void* back_seqqueue(seqqueue*queue);
76//
返回佇列長度
77int size_seqqueue(seqqueue*queue)
7883
84return queue->size;85}
86//
清空佇列
87void clear_seqqueue(seqqueue*queue)
8893
94 queue->size = 0;95
}96//銷毀佇列
97void free_seqqueue(seqqueue*queue)
98103
104for (int i = 0; i < max_size; ++i)
105108 queue->size = 0
;109
free
(queue);
110111 }
1 #include"測試結果:佇列順序儲存.h
"2 #include
3 #include4 #include5
6#define m 8
7#define n 38//
資料元素結構體
9 typedef struct
person
10person;
1415
intmain()16;
22 person p2 = ;
23 person p3 = ;
24 person p4 = ;
25 person p5 = ;
2627
//入隊
28 push_seqqueue(queue, (person*)&p1);
29 push_seqqueue(queue, (person*)&p2);
30 push_seqqueue(queue, (person*)&p3);
31 push_seqqueue(queue, (person*)&p4);
32 push_seqqueue(queue, (person*)&p5);
3334
//返回隊首元素
35 person* temp = (person*)front_seqqueue(queue);
36 printf("
value: %s age: %d\n
", temp->name, temp->age);
3738
//出隊
39pop_seqqueue(queue);
4041
//返回隊首元素
42 temp = (person*)front_seqqueue(queue);
43 printf("
value: %s age: %d\n
", temp->name, temp->age);
4445
int size =size_seqqueue(queue);
46 printf("
長度%d\n
", size);
4748
//清空佇列
49clear_seqqueue(queue);
5051 size =size_seqqueue(queue);
52 printf("
長度%d\n
", size);
53//
銷毀佇列
54free_seqqueue(queue);
55return0;
56 }
佇列 迴圈佇列 的順序儲存實現
佇列的順序儲存實現 1 佇列 一端進,另一端出 佇列由兩個引數決定,front 頭 rear 尾 頭指標指向頭乙個元素,尾指標指向指向最後乙個元素的下一儲存單元 若陣列長度為n,當元素個數為n 1時就認為佇列已滿。r指向最後乙個空的元素空間。出隊 頭指標往上移動,入隊 尾指標向上移動,故 靜態佇列只...
c實現佇列的順序儲存
queue.c duizhanduilie 佇列的順序儲存結構 include define m 100 define qelemtype int 初始化佇列 void initialq int front,int rear 測試佇列是否為空 int emptyq int front,int rea...
佇列的順序 鏈式儲存實現
佇列 具有一定操作約束的線性表,只能在一端插入,在另一端刪除。特點 先來先服務,先進先出表 頭front,尾rear 順序儲存 1 define maxsize 儲存資料元素的最大個數 23 struct qnode 1213 typedef struct qnode queue 14 front ...