用Python实现数据结构之树
树 树是由根结点和若干颗子树构成的。树是由一个集合以及在该集合上定义的一种关系构成的。集合中的元素称为树的结点,所定义的关系称为父子关系。父子关系在树的结点之间建立了一个层次结构。在这种层次结构中有一个结点具有特殊的地位,这个结点称为该树的根结点,或称为树根。 相关概念 根节点:树中最顶部的元素 父节点:处了根节点都有父节点,每个节点最多只有一个父节点 孩子节点:一个父节点具有0个或多个孩子节点 兄弟节点:同一个父节点的孩子节点之间是兄弟关系 外部节点:一个没有孩子的节点称为外部节点,也叫叶子结点 内部节点:有一个或多个孩子节点的节点叫做内部节点 树的边:指一对节点(u,v),其中u是v的父节点或者v是u的父节点 树的路径:一系列连续的边组成了一条路径 节点的深度:节点的深度就是该节点的祖先的个数,不包括该节点本身,如果根节点的层数为1,则深度即为该节点的层数-1 节点的高度:如果p是树中的叶子节点,那么它的高度为0.否则p的高度是它的孩子节点中的最大高度+1 有序树:每个孩子之间有一定的顺序,例如: 一个树的抽象基类 class Tree () : """ 树的抽象基类 """ # 叫做位置的内嵌类,用于封装节点 class Position () : def element (self) : raise NotImplementedError( 'must be