简介
定义树的一种自然的方式是递归。一般的树:
一棵树是N个节点和N-1条边的集合。
树叶(leaf):没有儿子的节点。
兄弟(siblings):具有相同父亲的节点。用类似的方法可以定义祖父(grandparent)和孙子(grandchild)关系。
节点n的深度(depth):从根节点到节点n的唯一路径的长。
节点n的高度(height):从n到一片树叶的最长路径的长。
祖先(ancestor):如果存在从n1到n2的一条路径,那么n1是n2的一位祖先。而n2是n1的一个后裔(descendant)。
真祖先(proper ancestor):先满足是祖先,如果n1不等于n2,那么n1是n2的真祖先,而n2是n1的真后裔(proper ancestor)。
路径的长是指该路径上边的条数。
树的实现
方法一:在每一个节点除数据外还要有一些链,使得该节点的每一个儿子都有一个链指向它。
方法二:将每个节点的所有儿子都放在树节点的链表中。
一颗树
转