添加头文件
声明宏定义
设计数据结构
功能函数声明
具体功能实现
注:因为队头和队尾都指向第一/最后一个有效元素,因此queue->tall指向-1更合适,而不是指向前/下一个空元素,方便查询
简单调用测试
int main()
{
Queue* queue = creat_queue(10);
for(int i=0; i<15; i++)
{
printf("入队%s,",push_queue(queue,i)?"成功":"失败");
printf("队尾:%d\n",*tall_queue(queue));
}
printf("---------------------\n");
for(int i=0; i<5; i++)
{
printf("队头:%d,",*head_queue(queue));
printf("出队%s\n",pop_queue(queue)?"成功":"失败");
}
printf("---------------------\n");
for(int i=77; i<88; i++)
{
printf("入队%s,",push_queue(queue,i)?"成功":"失败");
printf("队尾:%d\n",*tall_queue(queue));
}
}
结果
总结
创建:初始化各参数
销毁:直接释放
队空:通过cnt判断
队满:通过cnt判断
入队:队不满则回头(队头前面有空,队尾就跑到了队头前面),给队尾赋值
出队:队不空则回头
队头:队不空,返回队头
队尾:队不空,返回队尾