树
根节点
子树
边(有向的)
父亲(结点)
儿子(结点)
兄弟(结点)
叶结点(没有儿子的结点)
祖父(结点)
孙子(结点)
路径(其长为路径上的边的条数,每个结点到它自己有一条长为0的路径)
(结点的)深度(从根到该结点的唯一路径的长,根的深度为0)
(结点的)高(从该结点到一片树叶的最长路径的长,所有树叶的高为0,一棵树的高等于它的根的高)
祖先(包括结点自己对自己的情况)
后裔(包括结点自己对自己的情况)
真祖先
真后裔
树的典型实现
struct TreeNode
{
Object element;
TreeNode *firstChild;
TreeNode *nextSibling;
};
树的遍历
前序遍历(对结点的处理工作是在它的诸儿子结点被处理之前进行的)
后序遍历(在一个结点的工作是在它的诸儿子结点被计算后进行的)