下面关于线性表的题目,请任选一道完成。 1. 线性表题目1: 飞机到达目的地后,游客的行李会进入传送带,由游客自行在取行李处拿取,虽然机场出口处,有工作人员在检查,但也难免会出现拿错行李的事情。请为机场设计一个游客取行李的程序,游客在取行李处,输入自己的身份证号后才能取到自己的行李。 要求: 使用线性表实现行李存储,行李信息表如下: 行李编号 行李航班 姓名 身份证号 行李状态 001 UC8866 张里 510199909090002 到达 002 NI7755 李丽 510200012290001 已取 003 MQ9090 王一 510198810090003 未取 004 BU8080 赵山 610197708080022 未到达 游客输入身份证号,即可获取对应行李箱状态,并领取本人行李箱。 显示欢迎类语句,为游客增加美好的体验感。 代码符合规范,正确、易读、易操作。 分析代码的运行效率,如时间复杂度和空间复杂度。
时间: 2024-02-26 11:54:29 浏览: 100
这道题目需要用到线性表的知识,可以使用顺序表或链表来实现行李信息的存储。下面是一个使用顺序表实现的示例代码:
```python
class Luggage:
def __init__(self, number, flight, name, id_number, status):
self.number = number
self.flight = flight
self.name = name
self.id_number = id_number
self.status = status
class LuggageList:
def __init__(self):
self.luggages = []
def add_luggage(self, luggage):
self.luggages.append(luggage)
def get_luggage_by_id(self, id_number):
for luggage in self.luggages:
if luggage.id_number == id_number:
return luggage
return None
luggage_list = LuggageList()
luggage_list.add_luggage(Luggage("001", "UC8866", "张里", "510199909090002", "到达"))
luggage_list.add_luggage(Luggage("002", "NI7755", "李丽", "510200012290001", "已取"))
luggage_list.add_luggage(Luggage("003", "MQ9090", "王一", "510198810090003", "未取"))
luggage_list.add_luggage(Luggage("004", "BU8080", "赵山", "610197708080022", "未到达"))
id_number = input("请输入您的身份证号:")
luggage = luggage_list.get_luggage_by_id(id_number)
if luggage:
print("欢迎您,{},您的行李箱状态为:{}".format(luggage.name, luggage.status))
else:
print("没有找到对应的行李箱信息。")
```
这段代码中,`Luggage` 类表示一个行李箱的信息,包括编号、航班、姓名、身份证号和状态。`LuggageList` 类表示行李箱列表,使用顺序表实现,提供了添加行李箱和根据身份证号查找行李箱的功能。
在主程序中,首先创建一个 `LuggageList` 对象,并添加四个行李箱信息。然后要求用户输入身份证号,使用 `get_luggage_by_id` 方法查找对应的行李箱信息,并输出欢迎语句和状态信息。
关于时间复杂度和空间复杂度,这段代码的时间复杂度为 O(n),其中 n 是行李箱的数量,因为在 `get_luggage_by_id` 方法中需要遍历整个行李箱列表。空间复杂度也为 O(n),因为需要存储所有的行李箱信息。
阅读全文