队列 Queue
一、存储
typedef struct{
ElementType data[MAX_SIZE]; // 队列的顺序存储
int front, rear; // 队头队尾指针
}Queue;
#define MAX_SIZE 100
typedef int ElementType;
typedef struct{
ElementType data[MAX_SIZE]; // 队列的顺序存储
int front, rear; // 队头队尾指针
}Queue;
二、操作
1.入队
bool EnQueue(Queue &q, int x)
{
// 队列满 入队失败
if((q.rear + 1) % MAX_SIZE == q.front) return false;
// 队列未满 入队成功 队尾插入
q.data[rear] = x;
q.rear = (q.rear + 1) % MAX_SIZE;
return true;
}
2.出队
bool DeQueue(Queue &q, int &x)
{
if(q.rear == q.front) return false; // 队列空 出队失败
// 队列未空 出队成功并返回元素到x 队头删除
x = q.data[q.front];
q.front = (q.front + 1) % MAX_SIZE;
return true;
}
网友评论