您的位置:首页 > 其它

2.3.1 队列及顺序存储实现

2017-11-05 16:57 232 查看


#include<stdio.h>
#include<stdlib.h>
#define ERROR 1e8
#define MaxSize 100

struct QNode {
ElementType Data[MaxSize];
int rear;
int front;
};
typedef struct QNode *Queue;
typedef ElementType;

//入队是rear+1,出队是front+1
//循环队列(不放满) //入队
void AddQ(Queue PtrQ, ElementType item){
if ((PtrQ->rear + 1) % MaxSize == PtrQ->front) {//先判断队列是否是满的,如果总共六个则最后一个是5,(5+1)%6==0
printf("队列满");
return;
}
PtrQ->rear = (PtrQ->rear + 1) % MaxSize;//如果总共六个则012345,最后一个是5,(5+1)%6==0接下来放到0
PtrQ->Data[PtrQ->rear] = item;//把item放到数组中
}
//出队
ElementType DeleteQ(Queue PtrQ) {
if (PtrQ->front == PtrQ->rear) {//先判断队列是否为空
printf("队列空!\n");
return ERROR;
}
else {
PtrQ->front = (PtrQ->front + 1) % MaxSize;//假设front=3,(3+1)%6=4
return PtrQ->Data[PtrQ->front];
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struct