数据结构模拟停车场实验c++代码
时间: 2024-11-25 18:31:31 浏览: 30
在C++中,我们可以使用数据结构如链表、队列或栈来模拟一个简单的停车场实验。这里以队列(Queue)为例,假设停车位是有限的,车辆需要按先到先服务的原则进入和离开。以下是简化的C++代码实现:
```cpp
#include <iostream>
#include <queue>
// 定义车位类
class ParkingLot {
public:
bool isFull() const { return parked.size() >= capacity; }
void park(Vehicle vehicle) {
if (isFull()) {
std::cout << "Parking lot is full. Vehicle cannot be parked.\n";
return;
}
parked.push(vehicle);
std::cout << vehicle.getName() << " parked at position " << parked.front().getPosition() << "\n";
}
private:
std::queue<Vehicle> parked;
int capacity; // 停车场容量
};
// 车辆类,可以有名字和位置属性
class Vehicle {
public:
Vehicle(const std::string& name, int position)
: name(name), position(position) {}
std::string getName() const { return name; }
int getPosition() const { return position; }
private:
std::string name;
int position;
};
int main() {
ParkingLot parking(10); // 假设停车场容量为10
Vehicle car1("Car 1", 0);
Vehicle car2("Car 2", 1);
parking.park(car1);
parking.park(car2); // 如果此时停车位满,会显示错误信息
return 0;
}
```
在这个例子中,`park()`函数用于停车,如果停车场已满则拒绝车辆。车辆通过队列的方式按照到达顺序存储。每个车辆都有一个名字和位置。
阅读全文