用C++ 编写一个程序实现链队列的各种基本运算,不用类函数,并在此基础上设计一个主程序,完成如下功能: 初始化链队列;入队;出队;判断队列是否为空
时间: 2023-06-26 13:04:51 浏览: 131
以下是C++实现链式队列的基本操作代码:
```cpp
#include <iostream>
using namespace std;
// 链队列结点结构体
struct LinkNode {
int data; // 数据域
LinkNode *next; // 指针域
};
// 初始化链队列
void InitQueue(LinkNode *&front, LinkNode *&rear) {
front = rear = new LinkNode;
front->next = NULL;
}
// 入队操作
void EnQueue(LinkNode *&rear, int x) {
LinkNode *s = new LinkNode;
s->data = x;
s->next = NULL;
rear->next = s;
rear = s;
}
// 出队操作
bool DeQueue(LinkNode *&front, LinkNode *&rear, int &x) {
if (front == rear) // 队列为空
return false;
LinkNode *p = front->next;
x = p->data;
front->next = p->next;
if (rear == p) // 如果队列中仅有一个结点
rear = front;
delete p;
return true;
}
// 判断队列是否为空
bool IsEmpty(LinkNode *front, LinkNode *rear) {
if (front == rear)
return true;
else
return false;
}
// 主函数
int main() {
LinkNode *front, *rear;
InitQueue(front, rear); // 初始化队列
EnQueue(rear, 1); // 入队
EnQueue(rear, 2);
EnQueue(rear, 3);
int x;
if (DeQueue(front, rear, x)) // 出队
cout << "出队元素为:" << x << endl;
else
cout << "队列为空,无法出队!" << endl;
if (IsEmpty(front, rear)) // 判断队列是否为空
cout << "队列为空!" << endl;
else
cout << "队列不为空!" << endl;
return 0;
}
```
该程序实现了链队列的基本操作,并在主程序中完成了初始化链队列、入队、出队、判断队列是否为空的功能。
阅读全文