typedef struct{
int data[maxSize];
int front; //队首指针
int rear; //队尾指针
}SqQueue;
//初始化
void initQueue(SqQueue &qu){
qu.front = qu.rear = 0;
}
//判断队空
int isQueueEmpty(SqQueue qu){
return qu.front == qu.rear;
}
//入队
int enQueue(SqQueue &qu, int x){
if((qu.rear+1) % maxSize == qu.front) //队满则不能入队
return 0;
qu.rear = (qu.rear+1) % maxSize; //先移动指针
qu.data[qu.rear] = x; //再放入元素
return 1;
}
//出队
int deQueue(SqQueue &qu, int &x){
if(qu.rear == qu.front) //队空则不能出队
return 0;
qu.front = (qu.front+1) % maxSize; //先移动指针
x = qu.data[qu.front]; //再取出元素
return 1;
}
【数据结构——栈和队列】顺序队列的基本操作
最新推荐文章于 2024-10-10 10:50:31 发布