You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python逐行读取txt文件数字并构建多分支链表

Python多链表结构实现

节点类定义

定义双指针节点结构,每个节点同时持有主链后继指针和分支链表后继指针:

class Node:
    def __init__(self, val):
        self.val = val
        self.next_main = None  # 主链下一个节点指针
        self.next_branch = None # 分支链表下一个节点指针

多链表构建流程

  • 第一步:读取TXT文件,逐行拆分内容为整数列表,所有行的第一个元素按顺序组成主链的节点值序列
  • 第二步:遍历主链值序列创建主节点,依次连接主链的next_main指针
  • 第三步:逐行处理分支元素,从对应主节点开始,依次创建分支节点,连接next_branch指针

完整实现代码

class Node:
    def __init__(self, val):
        self.val = val
        self.next_main = None
        self.next_branch = None

def build_multi_linked_list(file_path):
    # 读取文件内容
    lines = []
    with open(file_path, 'r', encoding='utf-8') as f:
        for line in f:
            line = line.strip()
            if not line:
                continue
            num_list = list(map(int, line.split()))
            lines.append(num_list)
    
    if not lines:
        return None
    
    # 先构建主链
    main_head = Node(lines[0][0])
    current_main = main_head
    main_nodes = [main_head] # 存储所有主节点方便后续处理分支
    for i in range(1, len(lines)):
        new_node = Node(lines[i][0])
        current_main.next_main = new_node
        current_main = new_node
        main_nodes.append(new_node)
    
    # 构建每个主节点对应的分支链表
    for idx, num_list in enumerate(lines):
        current_branch = main_nodes[idx]
        # 分支从第2个元素开始构建
        for val in num_list[1:]:
            new_branch_node = Node(val)
            current_branch.next_branch = new_branch_node
            current_branch = new_branch_node
    
    return main_head

# 测试打印函数
def print_multi_linked_list(head):
    # 打印主链
    main_vals = []
    current = head
    while current:
        main_vals.append(str(current.val))
        current = current.next_main
    print("主链结构:", "->".join(main_vals))
    
    # 打印每个主节点的分支
    current_main = head
    while current_main:
        branch_vals = []
        current_branch = current_main
        while current_branch:
            branch_vals.append(str(current_branch.val))
            current_branch = current_branch.next_branch
        print(f"主节点{current_main.val}的分支结构:", "->".join(branch_vals))
        current_main = current_main.next_main

# 调用示例
if __name__ == "__main__":
    # 假设输入文件名为input.txt,和代码同目录
    head = build_multi_linked_list("input.txt")
    print_multi_linked_list(head)

运行结果说明

将示例输入保存为input.txt后运行代码,输出结果如下:

主链结构: 10->13->14->12
主节点10的分支结构: 10->15->58
主节点13的分支结构: 13->18->25->20
主节点14的分支结构: 14
主节点12的分支结构: 12->55

完全符合需求预期。

内容的提问来源于stack exchange,提问作者moein2k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 05:57:04