/* * 循环队列 * */ typedef struct { int arr[SIZE]; int head; int tail; int num; //用来表示队列里的有效数字个数 } queue; //初始化 void queue_init(queue *p_queue) { p_queue->head = 0; p_queue->tail = 0; p_queue->num = 0; } //清空 void queue_deinit(queue *p_queue) { p_queue->head = 0; p_queue->tail = 0; p_queue->num = 0; } //统计个数 int queue_size(const queue *p_queue) { return p_queue->num; } //判断空 int queue_empty(const queue *p_queue) { return !(p_queue->num); } //判断满 int queue_full(const queue *p_queue) { return p_queue->num >=SIZE; } //向队列放数字 int queue_push(queue *p_queue, int val) { if(queue_full(p_queue)) { return 0; } else { p_queue->arr[p_queue->tail] = val; p_queue->tail++; p_queue->tail %= SIZE;//如果满了,求余为0,没有满则还是原来的 p_queue->num; return 1; } } //从队列获取数字,删除 int queue_pop(queue *p_queue, int *p_num) { if(queue_empty(p_queue)) { return 0; } else { *p_num = p_queue->arr[p_queue->head]; p_queue->head++; p_queue->head %= SIZE; p_queue->num--; return 1; } } //从队列获得数字,不会从队列里删除 int queue_front(const queue *p_queue, int *p_num) { if(queue_empty(p_queue)) { return 0; } else { *p_num = p_queue->arr[p_queue->head]; return 1; } }
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374【C语言】循环队列
发布时间:2025-02-21 17:46
C++入门建议从C语言过渡,掌握基本语法后再学习面向对象编程 #生活技巧# #工作学习技巧# #编程语言学习路径#
最新推荐文章于 2023-09-27 19:13:28 发布
刘星燎 于 2017-08-07 20:41:54 发布
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
网址:【C语言】循环队列 https://www.yuejiaxmz.com/news/view/786670
下一篇:没钱在宿舍打游戏,偶尔买杯甜水,
相关内容
语言C++之循环结构c语言在生活中的应用
数据结构之循环队列
C++循环嵌套
用c语言实现旅行商问题的c
【宝藏系列】嵌入式 C 语言代码优化技巧【超详细版】
循环队列的队空与队满的条件
c语言时间超限求优化
用C语言程序进行比赛日程排列
C语言自学书籍推荐