树结构是一种非线性结构,树中的一个元素可以有两个或两个以上的直接后继元素。
树的定义是递归的,即一棵树由若干棵子树构成,而子树又由更小的子树构成。
从数据结构的逻辑关系来看,树中元素之间还有严格的层次关系。对于树中的某节点,它最多只和上一层的一个节点(即双亲结点)有直接的关系,而与其下一层的多个结点(即孩子结点)有直接关系。
树的基本概念
双亲、孩子和兄弟
结点的子树的根称为该结点的孩子,该结点称为其子节点的双亲,具有相同双亲的结点互为兄弟,例如上图中B是A的孩子结点,A是B的双亲结点,B、C、D互为兄弟结点。
结点的度
一个结点的子树的个数记为该结点的度,例如上图中A的度为3,B的度为2。
叶子结点和内部结点
叶子结点也叫终端结点,指度为0的结点;内部结点是度不为0的结点。例如E、F、C、G都是叶子结点,A、B、D都是内部结点。
结点的层次
根为第一层,根的孩子为第二层,依次类推。例如上图树的层数为3,第一层是A,第二层是B、C、D,第三层是E、F、G。
树的高度
一棵树的最大层数记为树的高度(或深度)。
有序树