1. **队列的结构定义:**
- `SqQueue` 结构体定义了循环队列,包含一个数组 `data` 用于存储队列元素,以及两个指针 `front` 和 `rear` 分别表示队头和队尾的位置。
2. **初始化队列:**
- `Queue_Init` 函数用于初始化队列,将队头和队尾指针都置为 0。
3. **判断队列是否为空:**
- `Queue_IsEmpty` 函数通过判断队头和队尾指针是否相等来判断队列是否为空。
4. **判断队列是否已满:**
- `Queue_IsFull` 函数通过判断队尾指针是否达到数组的最大索引(`MAX_SIZE - 1`)来判断队列是否已满。
5. **入队操作:**
- `Queue_En` 函数用于将元素入队,首先检查队列是否已满,然后将元素存储在队尾,更新队尾指针。
6. **出队操作:**
- `Queue_De` 函数用于将元素出队,首先检查队列是否为空,然后将队头元素取出,更新队头指针。
7. **输出队列中的元素:**
- `Queue_Print` 函数用于打印队列中的元素,遍历队列数组,从队头到队尾输出元素。
8. **主函数演示:**
- 主函数演示了初始化队列、入队、出队等操作,并输出相应的结果。
#include <stdio.h>
#define MAX_SIZE 100
typedef int ElemType; // 假设队列中存储的元素类型是整数
typedef struct {
ElemType data[MAX_SIZE]; // 存储队列元素的数组
int front, rear; // 队列的队头和队尾指针
} SqQueue;
// 初始化队列
void Queue_Init(SqQu