链队列的入队出队c++
时间: 2023-06-12 19:07:28 浏览: 55
链队列的入队操作:
```c
typedef struct Node {
int data;
struct Node *next;
} Node;
typedef struct {
Node *front; // 队首指针
Node *rear; // 队尾指针
} LinkedQueue;
// 入队操作
void EnQueue(LinkedQueue *q, int x) {
Node *s = (Node *)malloc(sizeof(Node));
s->data = x;
s->next = NULL;
if (q->front == NULL) { // 队列为空
q->front = q->rear = s;
} else {
q->rear->next = s;
q->rear = s;
}
}
```
链队列的出队操作:
```c
// 出队操作
int DeQueue(LinkedQueue *q) {
if (q->front == NULL) { // 队列为空
printf("队列为空,无法出队!\n");
return -1;
} else {
Node *p = q->front;
int x = p->data;
q->front = p->next;
if (q->rear == p) { // 队列中只有一个元素
q->rear = NULL;
}
free(p);
return x;
}
}
```
需要注意的是,链队列的队头指针 `front` 指向队列的第一个元素,队尾指针 `rear` 指向队列的最后一个元素,并且队列中没有元素时,队头指针和队尾指针都为 `NULL`。
相关推荐
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)