c语言实现顺序队列的基本操作
时间: 2023-06-20 10:04:09 浏览: 101
c语言实现顺序表的基本操作
5星 · 资源好评率100%
顺序队列是一种线性结构,它具有先进先出的特点,也就是说,先进入队列的元素先出队列。在C语言中,我们可以使用数组来实现顺序队列。
下面是顺序队列的基本操作实现:
1. 初始化队列
```c
#define MAXSIZE 100 // 定义队列最大长度
typedef struct {
int data[MAXSIZE]; // 存储队列元素
int front; // 队首指针
int rear; // 队尾指针
} SqQueue;
// 初始化队列
void InitQueue(SqQueue *Q) {
Q->front = Q->rear = 0;
}
```
2. 判断队列是否为空
```c
// 判断队列是否为空
int IsEmpty(SqQueue Q) {
if (Q.front == Q.rear) {
return 1; // 队列为空
} else {
return 0; // 队列不为空
}
}
```
3. 判断队列是否已满
```c
// 判断队列是否已满
int IsFull(SqQueue Q) {
if ((Q.rear + 1) % MAXSIZE == Q.front) {
return 1; // 队列已满
} else {
return 0; // 队列未满
}
}
```
4. 入队操作
```c
// 入队操作
int EnQueue(SqQueue *Q, int x) {
if (IsFull(*Q)) {
return 0; // 队列已满,无法入队
} else {
Q->data[Q->rear] = x; // 将元素 x 插入到队尾
Q->rear = (Q->rear + 1) % MAXSIZE; // 队尾指针后移一位
return 1; // 入队成功
}
}
```
5. 出队操作
```c
// 出队操作
int DeQueue(SqQueue *Q, int *x) {
if (IsEmpty(*Q)) {
return 0; // 队列为空,无法出队
} else {
*x = Q->data[Q->front]; // 将队首元素赋值给 x
Q->front = (Q->front + 1) % MAXSIZE; // 队首指针后移一位
return 1; // 出队成功
}
}
```
以上就是顺序队列的基本操作实现,你可以根据需要进行修改和扩展。
阅读全文