停车管理系统 数据结构
时间: 2023-12-26 22:05:19 浏览: 148
停车管理系统的数据结构可以使用队列和栈来实现。具体来说,可以使用一个队列来表示停车场,另一个队列来表示便道,使用一个栈来记录停车场内的车辆顺序。每当有车辆到达时,先判断停车场是否已满,若未满则将车辆加入停车场队列和栈中,否则将车辆加入便道队列中。每当有车辆离开时,先从停车场队列和栈中删除该车辆,然后再从便道队列中取出一辆车加入停车场队列和栈中。在计算停车费用时,可以使用一个字典来记录每辆车的停车时间和费用信息。
具体实现细节可以参考以下代码:
```python
class ParkingSystem:
def __init__(self, capacity):
self.capacity = capacity
self.park = [] # 停车场
self.wait = [] # 便道
self.order = [] # 停车场内车辆顺序
self.info = {} # 车辆停车信息
def arrive(self, car_id, time):
if len(self.park) < self.capacity:
self.park.append(car_id)
self.order.append(car_id)
self.info[car_id] = [time,0]
print(f"车辆{car_id}在停车场第{len(self.park)}个位置停放")
else:
self.wait.append(car_id)
print(f"车辆{car_id}在便道等待")
def leave(self, car_id, time):
if car_id in self.park:
self.park.remove(car_id)
self.order.remove(car_id)
park_time = time - self.info[car_id][0]
fee = park_time * 2 # 停车费用为每分钟2元
self.info[car_id][1] = fee
print(f"车辆{car_id}在停车场停留了{park_time}分钟,停车费用为{fee}元")
if self.wait:
next_car = self.wait.pop(0)
self.park.append(next_car)
self.order.insert(self.order.index(car_id), next_car)
self.info[next_car] = [time, 0]
print(f"车辆{next_car}从便道进入停车场")
else:
print(f"车辆{car_id}不在停车场内")
def get_order(self):
return self.order
def get_info(self):
return self.info
```
阅读全文