循环队列相关知识
来源:互联网 发布:武汉 人工智能 编辑:程序博客网 时间:2024/06/01 10:30
#include<stdio.h>
#include<stdlib.h>
typedef struct queue
{
int *pbase;
int front;
int rear;
}Q;
void creat_queue(Q *pq) //初始化
{
pq->pbase = (int *)malloc(sizeof(int) * 10);
pq->front = 0;
pq->rear = 0;
}
bool full_queue(Q *pq) //判断队列是否满
{
if((pq->rear+1)%10 == pq->front)
return true;
else
return false;
}
bool is_empty(Q *pq) //判断队列是否空
{
if(pq->front == pq->rear)
return true;
else
return false;
}
bool input_queue(Q *pq,int val) //入队
{
if(full_queue(pq))
return false;
else
{
pq->pbase[pq->rear] = val;
pq->rear = (pq->rear+1)%10;
return true;
}
}
bool output_queue(Q *pq,int *pval) //出队
{
if(is_empty(pq))
return false;
else
{
*pval = pq->pbase[pq->front];
pq->front = (pq->front+1)%10;
return true;
}
}
void traverse(Q *pq) //遍历
{
int i=pq->front;
while(i!=pq->rear)
{
printf("%d ",pq->pbase[i]);
i=(i+1)%10;
}
return ;
}
int main()
{
int val;
Q pq;
creat_queue(&pq);
input_queue(&pq,11);
input_queue(&pq,33);
input_queue(&pq,99);
input_queue(&pq,55);
traverse(&pq);
if(output_queue(&pq,&val))
printf("出队成功,出队元素为:%d\n",val);
else
printf("出队失败!\n");
traverse(&pq);
return 0;
}
- 循环队列相关知识
- 优先队列相关知识
- 队列相关知识
- 队列的相关知识
- 循环队列的简单知识
- 消息队列的相关知识
- linux消息队列相关知识
- 消息队列的相关知识
- 循环队列的相关操作
- 循环队列的相关操作
- 普通队列,循环队列以及链队列的相关操作
- 循环队列的相关计算公式
- 循环队列的相关条件和公式
- 电商之梳理rabbitmq相关知识---通信--消息队列
- 静态循环队列的相关操作及详解
- 静态循环队列的相关操作及详解
- 数据结构_循环队列相关操作_C语言源代码
- 循环队列的相关操作(顺序结构)
- hd-1096:A+B for Input-Output Practice (VIII)
- 1.3.2 Barn Repair【贪心】
- 关于java基础--PIO操作xls文件、持久化对象以及拷贝文件
- NYOJ 1112 求次数(map)
- Solr常见问题记录
- 循环队列相关知识
- 1610 - Party Games(细节题)
- alert的用法
- poj 3321/3263 树状数组(苹果树/排身高)
- [转载]怎么写出一本程序员风格的修真小说?
- 二叉树
- AS 定位之经纬度获取(一)
- c# DataTable 表中的某个值如何获取
- poj2312题解