该程序包含了置空,判断是否为空,入队,出队,取对头元素等几个基本操作;
#include <stdio.h>
#include <stdlib.h> //malooc需要的头文件;
#define size 100
typedef struct
{
int data[size];
int rear;
int front;
int count;
}cirqueue;
cirqueue *q;
void initqueue() //置队空;
{
q=(cirqueue *)malloc(sizeof(cirqueue)); //在局外定义一个全局变量的指针,然后给他分配空间,就可以全局使用了;
q->front=q->rear=0; //对头和队尾下表为0;
q->count=0; //元素为空;
}
int queueempty() //判断队是否为空;
{
return q->count==0;
}
int queuefull()
{
return q->count==size;
}
int enquque(int x) //入队
{
if(queuefull())
{
puts("队满");return 0;
}
q->data[q->rear]=x;
q->rear=(q->rear+1)%size; //循环队列的主要因素
q->count++; //记得每次入队要加1
return 1;
}
int queuefront(int *z) //取对头元素;此处z为指针是为了能够传递出去;
{
if(queueempty())
{
puts("队空");return 0;
}
*z=q->data[q->front];
return 1;
}
int dequque(int *y) //出队
{
if(queueempty())
{
puts("队空");return 0;
}
*y=q->data[q->front];
q->front=(q->front+1)%size; //循环队列的主要因素
q->count--; //记得每次入队要减1
return 1;
}
void main()
{
int x=3,y,z;
initqueue();
printf("是否为空:%d\n",queueempty());
printf("是否为满:%d\n",queuefull());
printf("入队是否成功:%d\n",enquque(x));
printf("取队头是否成功:%d\n",queuefront(&z));
printf("对头元素为:%d\n",z);
printf("出队是否成功:%d\n",dequque(&y));
printf("出队元素为:%d\n",y);
}
各位兄弟,如果这篇文章对你有那么一点点的帮助的话,就给我一点鼓励点个赞吧,兄弟我在这里谢谢大家啦!
版权声明:本文为weixin_64028674原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。