在 FIFO 数据结构中,将首先处理添加到队列中的第一个元素。
如上图所示,队列是典型的 FIFO 数据结构。插入(insert)操作也称作入队(enqueue),新元素始终被添加在队列的末尾。 删除(delete)操作也被称为出队(dequeue)。 你只能移除第一个元素。
创建队列
#include "stdio.h"
#define MAXSIZE 5 //最大容量是5个元素
struct queue //队列
{
int a[MAXSIZE]; //队列元素
int front; //队头
int rear; //队尾
};
步骤一:判断是否溢出,若溢出给出提示结束程序,否则跳到步骤二
步骤二:输入入队的元素
步骤三:将元素存于队尾处
步骤四:队尾下标自增
//入队操作
void enqueue(struct queue *q)
{
int e;
if(q->rear<MAXSIZE-1)//判断溢出--队尾下标比最大长度的下标(maxsize-1)小,不能=,因为这样就无法插入了
{
printf("请输入入队的元素:");
scanf("%d",&e);
q->a[q->rear]=e;//给末尾赋值,[q->rear]是指向末尾元素,a[q->rear]末尾元素的值
q->rear++;//往后移动一位
printf("入队成功\n");
}
else
{
printf("溢出\n");
}
}
步骤一:判断是有元素,若无元素则给出提示结束程序,否则跳到步骤二
步骤二:用e接收出队的元素
步骤三:
步骤四:队尾下标自增
//出队操作
void dequeue(struct queue *q)
{
int e;
if(q->front==q->rear)//判断对空条件front==rear
{
printf("队空,没有元素\n");
}
else
{
e=q->a[q->front];//对头元素取出
q->front++;
printf("出队的元素是%d\n",e);
}
}