链表存储结构的多个航班信息怎么读取和写入文件,代码实现
时间: 2024-10-08 22:05:16 浏览: 19
链表用于存储航班信息,通常会涉及到将链表内容序列化到文件以便持久化保存,以及从文件恢复链表。以下是使用Python的一个简单示例,假设我们有一个航班信息节点类`Flight`,和一个单向链表`FlightList`:
```python
class Flight:
def __init__(self, flight_no, destination):
self.flight_no = flight_no
self.destination = destination
self.next = None
class FlightListNode:
def __init__(self):
self.head = None
# 添加航班信息到链表
def add_flight_to_list(node_list, flight):
if not node_list.head:
node_list.head = flight
else:
current = node_list.head
while current.next:
current = current.next
current.next = flight
# 将链表内容写入文件
def write_to_file(node_list, filename):
with open(filename, 'w') as f:
while node_list.head:
f.write(f"{node_list.head.flight_no} -> {node_list.head.destination}\n")
node_list.head = node_list.head.next
# 从文件读取数据并重建链表
def read_from_file(filename, flight_class=Flight):
node_list = FlightListNode()
with open(filename, 'r') as f:
lines = f.readlines()
for line in lines:
flight_data = line.strip().split(' -> ')
flight = flight_class(int(flight_data[0]), flight_data[1])
add_flight_to_list(node_list, flight)
return node_list
# 示例
flight_1 = Flight(1001, "北京")
flight_2 = Flight(1002, "上海")
node_list = FlightListNode()
add_flight_to_list(node_list, flight_1)
write_to_file(node_list, 'flights.txt')
recovered_node_list = read_from_file('flights.txt')
```
在这个例子中,`read_from_file`函数会按行读取文件,每行代表一个航班,然后创建新的`Flight`对象并添加到链表中。`write_to_file`则是遍历链表并将每个航班的信息写入文件。
阅读全文