循环队列
来源:互联网 发布:ios10蜂窝数据开关在哪 编辑:程序博客网 时间:2024/06/05 18:26
#include <stdio.h>#include <malloc.h>#include <stdlib.h>typedef struct Queue{ int * pBase; int front; int rear;}Queue ,* PQueue;void init_queue(PQueue pq);void queue_shift(PQueue pq,int val);int is_full(PQueue pq);void show_queue(PQueue pq);int is_empty(PQueue pq);void queue_unshift(PQueue pq);int main(void){ Queue q; init_queue(&q); queue_shift(&q,1); queue_shift(&q,3); queue_shift(&q,2); queue_shift(&q,4); printf("%s\n", "插入之后的结果是:"); show_queue(&q); queue_unshift(&q); queue_unshift(&q); printf("%s\n", "弹出之后的结果是:"); show_queue(&q); return 0;}void init_queue(PQueue pq){ pq->pBase = (int *)malloc(sizeof(int)*5); pq->front=0; pq->rear=0;}void queue_shift(PQueue pq,int val){ if(is_full(pq)){ printf("%s\n", "队列已经满了!不能再插入了!"); return; }else{ pq->pBase[pq->rear]=val; pq->rear = (pq->rear+1)%5; }}int is_full(PQueue pq){ if((pq->rear+1)%5==pq->front){ return 1; }else{ return 0; }}int is_empty(PQueue pq){ if(pq->front==pq->rear){ return 1; }else{ return 0; }}void show_queue(PQueue pq){ int i = pq->front; while(i!=pq->rear){ printf("%d ",pq->pBase[i] ); i=(i+1)%5; } printf("\n");}void queue_unshift(PQueue pq){ if(is_empty(pq)){ printf("%s\n", "队列已经是空的了,不能弹出了!"); return; }else{ printf("弹出的是:%d\n", pq->pBase[pq->front]); pq->front = (pq->front+1)%5; }}
0 0
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 变量名的意义
- 设置UITabBarItem和UIBarButtonItem字体颜色
- 如何访问内网的摄像头
- 素数筛
- Arduino串口的一些高级用法
- 循环队列
- ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.a
- 2010/09/28 徐彩琴的display:none改造代码评审小结
- J2EE编辑中的中文乱码解决问题
- 如何提高代码质量
- jquery验证后ajax提交,返回消息如何统一显示的问题
- android横竖屏切换布局处理及屏幕旋转处理
- 接入LeakCanary检测内存泄露
- SparseArray 简介