C语言的queue,额又来啦
| 函数名 |
参数 |
功能 |
| isFull |
const queue |
判断队列是否已经满了 |
| isEmpty |
const queue | 判断队列是否已经空 |
| enqueue |
queue,x |
进队,x为插入的元素 |
| dequeue |
queue,x |
出队,x为出队的元素 |
| getLen |
const queue |
得到队中的数据个数 |
| initqueue |
queue |
初始化队列,分配数据空间 |
| release |
queue |
释放队的内存空间 |
队列的结构体的定义:
typedef struct{int *base;int front;int rear;} queue;
判断队空队满:
int isEmpty(const queue *s){return s->front == s->rear;}// 少分配一个存储空间int isFull(const queue *s){return s->front == (s->rear + 1) % MAXSIZE;}
入队:
// 入队操作int enqueue(queue *s,int x){if (isFull(s)){return 0;}else{s->base[s->rear] = x;s->rear = (s->rear + 1) % MAXSIZE;return 1;}}
出队:
//出队操作int dequeue(queue *s,int *x){if(isEmpty(s)){return 0;}else{*x = s->base[s->front];s->front = (s->front + 1) % MAXSIZE;return 1;}}
得到队的长度:
//求队的长度int getLen(const queue *s){return (s->rear - s->front+MAXSIZE)%MAXSIZE;}
初始化队:
// 初始化队列int initqueue(queue *s){// 开辟MAXSIZE空间s->base = (int *)malloc(sizeof(int) * MAXSIZE);// 如果分配空间不成功if(!s->base){return 0;}s->front = 0;s->rear = 0;return 1;}
销毁队:
//销毁队列void release(queue *s){free(s->base);}
最后感谢您的阅读,更多的精彩内容,欢迎点击下方的搜索来阅读更多精彩文章。
JavaScript
程序猿小根
Java
程序
1.
2.
3.
程序猿小根
欢迎您的关注
