用数据结构编写长包房代码
时间: 2024-09-25 20:04:11 浏览: 79
在编程中,特别是涉及到房间管理的问题,我们可以使用数据结构来表示和处理长包房的信息。这里可以考虑使用链表、哈希表或者树等数据结构,具体选择取决于应用场景的需求。
以下是一个简单的长包房管理的Python示例,使用字典(哈希表)来存储每个包房及其信息:
```python
class Room:
def __init__(self, room_id, capacity, is_taken):
self.room_id = room_id
self.capacity = capacity
self.is_taken = is_taken # 初始状态默认空闲
self.items = []
# 使用字典存储多个长包房
rooms = {
'R001': Room(1, 10, False), # 容量10人,未占用
'R002': Room(2, 20, True), # 容量20人,已占用
'R003': Room(3, 30, False) # 容量30人,未占用
}
def book_room(room_id, num_people):
if room_id in rooms and rooms[room_id].is_taken == False:
rooms[room_id].is_taken = True
rooms[room_id].items.append(num_people)
print(f"Booked room {room_id} for {num_people} people.")
else:
print("Room not available or already occupied.")
def cancel_reservation(room_id, num_people):
if room_id in rooms and rooms[room_id].is_taken:
if num_people in rooms[room_id].items:
rooms[room_id].is_taken = False
rooms[room_id].items.remove(num_people)
print(f"Canceled reservation for {num_people} people in room {room_id}.")
else:
print("Invalid reservation number.")
else:
print("No such reservation found.")
```
在这个例子中,`book_room` 和 `cancel_reservation` 函数可以操作不同的包房,因为它们都通过房间ID来查找对应的`Room`对象,这就是实现了数据结构中的多态性。
阅读全文