Python二叉树链式存储实现

本文介绍二叉树的链式存储结构,并提供Python代码示例,帮助你理解和掌握二叉树的基本操作。

1. 节点定义

首先,我们定义二叉树节点TreeNode,包含数据域data和指向左右子节点的指针leftright

class TreeNode:
    def __init__(self, data):
        self.data = data
        self.left = None
        self.right = None

2. 创建二叉树

接下来,我们创建一个函数create_binary_tree,根据给定的列表构建二叉树:

def create_binary_tree(arr):
    if not arr:
        return None

    # 使用列表中的元素逐个创建树节点
    nodes = [TreeNode(data) if data is not None else None for data in arr]

    # 链接节点之间的关系
    for i in range(len(nodes)):
        if nodes[i] is None:
            continue

        left_index = 2 * i + 1
        right_index = 2 * i + 2

        if left_index < len(nodes):
            nodes[i].left = nodes[left_index]

        if right_index < len(nodes):
            nodes[i].right = nodes[right_index]

    return nodes[0]  # 返回根节点

该函数接受一个列表arr作为输入,根据列表元素创建树节点,并根据二叉树的性质连接节点关系,最终返回根节点。

3. 测试代码

以下代码演示如何使用create_binary_tree函数创建二叉树并访问节点值:

# 测试代码
arr = [1, 2, 3, 4, None, 5, 6]
root = create_binary_tree(arr)
print(root.data)         # 输出根节点的值
print(root.left.data)    # 输出左子节点的值
print(root.right.data)   # 输出右子节点的值

4. 总结

本文介绍了二叉树链式存储的基本概念,并使用Python实现了节点定义和二叉树创建过程。你可以根据这段代码进行扩展,实现更多二叉树操作,例如遍历、查找、插入和删除等。

Python二叉树链式存储实现与代码示例

原文地址: https://www.cveoy.top/t/topic/bxKJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录