数据结构 停车场管理系统
时间: 2023-12-21 09:30:42 浏览: 59
停车场管理系统是一个典型的实际问题,需要使用数据结构来解决。常用的数据结构有栈和队列。栈可以用来管理停车场内的车辆,而队列可以用来管理等待进入停车场的车辆。下面是一个使用C++实现的停车场管理系统的例子:
```cpp
#include <iostream>
#include <stack>
#include <queue>
using namespace std;
const int MAXSIZE = 100; // 停车场最大容量
stack<int> park; // 停车场栈
queue<int> wait; // 等待队列
// 进入停车场
void enterPark(int carNum) {
if (park.size() < MAXSIZE) {
park.push(carNum);
cout << "车辆" << carNum << "进入停车场" << endl;
} else {
wait.push(carNum);
cout << "车辆" << carNum << "进入等待队列" << endl;
}
}
// 离开停车场
void leavePark(int carNum) {
stack<int> temp; // 临时栈,用于存放出停车场的车辆
bool flag = false; // 标记是否找到车辆
while (!park.empty()) {
int top = park.top();
park.pop();
if (top == carNum) {
flag = true;
cout << "车辆" << carNum << "离开停车场" << endl;
break;
} else {
temp.push(top);
}
}
while (!temp.empty()) {
park.push(temp.top());
temp.pop();
}
if (!flag) {
cout << "停车场中没有车辆" << carNum << endl;
}
if (!wait.empty()) {
int nextCar = wait.front();
wait.pop();
enterPark(nextCar);
}
}
int main() {
enterPark(1);
enterPark(2);
enterPark(3);
enterPark(4);
enterPark(5);
leavePark(3);
leavePark(6);
leavePark(2);
leavePark(1);
leavePark(4);
leavePark(5);
return 0;
}
```
上述代码中,我们使用了一个栈来模拟停车场,使用一个队列来模拟等待队列。当停车场已满时,车辆将进入等待队列。当有车辆离开停车场时,我们首先需要找到该车辆,然后将其从停车场中移除。如果等待队列中有车辆,我们将其移动到停车场中。
相关推荐
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.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)