您的位置:首页 > 其它

循环队列的顺序存储实现

2017-11-20 14:51 232 查看
/*用数组实现队列的顺序存储*/
#include <stdio.h>
#define MaxSize 20
#define ElementType int
#define ERROR -1
struct QNode{
ElementType Data[MaxSize];
int front;
int rear;
};
typedef struct QNode *Queue;

//循环队列无法区分队列满和队列空

/*
解决方法:
1.使用额外标记:Size或者Tag域
2.仅使用n-1个数组空间
*/

//这里使用第二种方法
void AddQ(Queue PtrQ,ElementType item)
{
if((PtrQ->rear+1)%MaxSize==PtrQ->front){
printf("Queue is full.");
return;
}
PtrQ->rear=(PtrQ->rear+1)%MaxSize;
PtrQ->Data[PtrQ->rear]=item;
}

ElementType DeleteQ(Queue PtrQ)
{
if(PtrQ->rear==PtrQ->front){
printf("Queue is empty.");
return ERROR;
}else{
PtrQ->front=(PtrQ->front+1)%MaxSize;
return PtrQ->Data[PtrQ->front];
}
}

int main()
{
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: