引言
在现实生活中,信息往往不是孤立存在的,而是以某种方式相互关联。例如,文件系统中的目录结构就是一个典型的树形结构;而社交网络中的好友关系,则更像是一种复杂的图结构。这些数据结构不仅帮助我们更好地组织和理解信息,同时也是许多高效算法的基础。因此,了解并掌握如何在Python中实现树和图显得尤为重要。
基础语法介绍
树的基本概念
- 节点(Node): 树中的每一个元素称为节点,每个节点可以包含一个或多个子节点。
- 根节点(Root): 没有父节点的唯一节点。
- 叶子节点(Leaf): 没有子节点的节点。
- 分支节点(Branch): 除了根节点和叶子节点之外的其他所有节点。
图的基本概念
- 顶点(Vertex): 图中的一个元素称为顶点,相当于树中的节点。
- 边(Edge): 连接两个顶点的线段,表示顶点之间存在某种关系。
- 权重(Weight): 边可以附加一个数值,用于表示连接强度或其他属性。
在Python中,我们可以使用类来定义节点或者顶点,并通过列表或字典来存储其子节点或邻接顶点的信息。
基础实例
让我们从一个简单的例子开始——构建一颗二叉树。二叉树是一种特殊的树形结构,其中每个节点最多有两个子节点。
class TreeNode:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
# 创建根节点
root = TreeNode('A')
# 创建左子树
root.left = TreeNode('B')
root.left.left = TreeNode('D')
root.left.right = TreeNode('E')
# 创建右子树
root.right = TreeNode('C')
root.right.left =