顺序队列的操作
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
typedef int ElemType;
#define MaxSize 50
/*顺序队列的类型定义*/
typedef struct {
/*用一维数组存放队列元素*/
ElemType data[MaxSize];
/*队头指针*/
int front;
/*队尾指针*/
int rear;
} SqQueue;
/*初始化顺序队列*/
void InitQueue(SqQueue *Q){
Q->rear=Q->front=0;
}
/*判断顺序队列是否为空*/
bool isEmpty(SqQueue Q){
return Q.front=Q.rear;
}
/*入队*/
bool EnQueue(SqQueue *Q,ElemType X){
/*队满*/
if((Q->rear+1)%MaxSize ==Q->front){
return false;
}
/*先入队*/
Q->data[Q->rear]=X;
/*队尾指针 再 +1*/
Q->rear=(Q->rear+1)% MaxSize;
return true;
}
/*出队*/
bool DeQueue(SqQueue *Q,ElemType *X){
/*对空*/
if(Q->rear == Q->front){
return false;
}
/*先获取队头元素*/
*X=Q->data[Q->front];
/*队头指针+1*/
Q->front=(Q->front+1)% MaxSize;
return true;
}
int main() {
printf("@@@@");
return 0;
}
标签:return,队列,SqQueue,MaxSize,循环,front,基本操作,rear
From: https://www.cnblogs.com/chengqiang521/p/18299522