
循环队列的C语言实现
八月 01, 2021
2865
本文实现了循环队列的C语言实现。主要功能入队与出队。
1.代码部分
循环队列结构体的定义
循环队列的结构
1 |
|
初始化函数,接受一个分配好空间的循环队列,对内部进行初始化。
1 |
|
入队、出队函数:
1 |
|
经main函数验证正确。
1 |
|
2.反思与改进
失败的show函数。试图通过一个函数按顺序展现队列的元素,但是由于空缺位置的存在与其位置的不确定性,未能实现相关功能。期望有时间的话进一步改进算法,也欢迎大佬们给出建议。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28/* An unsuccessful try. Don't know how to show the queue correctly.
void ShowQueue(Queue* que)
{
int i, j, k;
k = QueueLength(que);
if (que->front < que->rear)
{
for (i = que->front; i <= k; i++)
{
printf("Order: %d.\n", que->base[i]);
}
}
else if(que->front > que->rear)
{
for (i = que->front; i <= MAXSIZE; i++)
{
printf("Order:%d.\n", que->base[i]);
}
for (j = 0; j < que->rear; j++)
{
printf("Order:%d.\n", que->base[j]);
}
}
else {
printf("Empty.\n");
}
}
*/什么时候分配内存,什么时候直接定义:
当初次使用结构体或者在函数内部需要对结构体内部成员进行赋值时要现malloc,当这个新结构体只是用来承载已存在的结构体的内容时(如直接指向同一内容:p = q)不需要malloc
- 本文作者:Guo tianyu
- 本文链接:https://guotianyu-2020.github.io/2021/08/01/%E5%BE%AA%E7%8E%AF%E9%98%9F%E5%88%97%E7%9A%84C%E8%AF%AD%E8%A8%80%E5%AE%9E%E7%8E%B0/index.html
- 版权声明:本博客所有文章均采用 BY-NC-SA 许可协议,转载请注明出处!
查看评论