#include<stdbool.h>
#include<stdio.h>
#include<malloc.h>
typedef int Item;
#define MAXQUEUE 10
typedef struct queue{
int front;
int rear;
int data[MAXQUEUE];
}Queue;
void InitQueue(Queue *pq)
{
pq->front = pq->rear = 0;
}
bool QueueIsFull(const Queue *pq)
{
return ((pq->rear+1)%MAXQUEUE == pq->front)?1:0;
}
bool QueueIsEmpty(const Queue *pq)
{
return (pq->rear == pq->front)?1:0;
}
int QueueItemCount(const Queue *pq)
{
return (pq->rear - pq->front + MAXQUEUE)%MAXQUEUE;
}
bool EnQueue(Item item,Queue *pq)
{
if(QueueIsFull(pq))
return 0;
pq->data[pq->rear] = item;
pq->rear = (pq->rear + 1)%MAXQUEUE;
return 1;
}
bool DeQueue(Queue *pq,Item *data)
{
if(QueueIsEmpty(pq))
return 0;
*data = pq->data[pq->front];
pq->front = (pq->front + 1)%MAXQUEUE;
return 1;
}
int main(void)
{
Queue line;
Item temp;
char ch;
InitQueue
c语言实现循环队列
最新推荐文章于 2023-05-16 22:49:57 发布