c++数据结构链式队列入队和出队
时间: 2024-01-09 21:21:44 浏览: 156
以下是C++中链式队列的入队和出队操作的示例代码:
1. 链式队列的入队操作:
```cpp
void EnQueue(LinkQueue *&q, int x) {
Queue *p = (Queue *)malloc(sizeof(Queue)); // 创建新结点
p->data = x; // 设置结点的值
p->next = NULL; // 将结点的指针域置为空
if (q->rear == NULL) { // 判断队列是否为空
q->front = q->rear = p; // 如果队列为空,将新结点设置为队列的头指针和尾指针
} else {
q->rear->next = p; // 将新结点连接到队列的尾部
q->rear = p; // 更新队列的尾指针
}
}
```
2. 链式队列的出队操作:
```cpp
int DeQueue(LinkQueue *&q, int &x) {
if (q->front == NULL) { // 判断队列是否为空
return 0;
}
Queue *p = q->front; // 创建出队指针
x = p->data; // 获取结点的值并传回主函数
if (q->rear == q->front) { // 原队列只有一个结点,出队后队列变空
q->front = q->rear = NULL; // 变为空队
} else {
q->front = q->front->next; // 有两个以上的队列,头指针已经出队,改变头指针的指向
}
free(p); // 释放结点内存
return 1;
}
```
阅读全文