#include<stdio.h>
#define maxsize 10
struct queue{
int data[maxsize];
int front;
int rear;
};
typedef struct queue Queue;
void queue_init(Queue *qe)
{
qe->front=-1;
qe->rear=-1;
}
Queue enqueue(Queue *qe,int s)
{
if(qe->rear==maxsize-1)
printf("队列满");
else
qe->data[qe->rear++]=s;
}
int dequeue(Queue *qe)
{
int s=0;
if(qe->front==qe->rear)
return 0;
//printf("队列空");
else
{
s=qe->data[qe->front++];
return s;
}
}
void destroy(Queue *q)
{
q->rear=q->front=-1;
#define maxsize 10
struct queue{
int data[maxsize];
int front;
int rear;
};
typedef struct queue Queue;
void queue_init(Queue *qe)
{
qe->front=-1;
qe->rear=-1;
}
Queue enqueue(Queue *qe,int s)
{
if(qe->rear==maxsize-1)
printf("队列满");
else
qe->data[qe->rear++]=s;
}
int dequeue(Queue *qe)
{
int s=0;
if(qe->front==qe->rear)
return 0;
//printf("队列空");
else
{
s=qe->data[qe->front++];
return s;
}
}
void destroy(Queue *q)
{
q->rear=q->front=-1;
}
先上一段代码,主要就是队列结构体的定义和入队操作以及出队操作的函数实现
开始就是开辟一段连续的地址空间,然后用这个数组来保存一个队列,用变量front和rear分别来记录一个队列的队头和队尾
这样,当入队的时候,rear++,出队的时候,front++
入队的截止条件是rear==maxsize-1,也就是尾指针不能到达最大容量
出队的截止条件是,front==rear,也就是出队的元素不能超过已入队的元素