树的定义和术语
自由树:一棵自由树 可以定义为一个二元组 (V, E) ,其中V是值集合,E是有序对的集合。
V中的元素称为顶点,E中的元素称为边或者分支。
有根树:一棵有根树,简称为树,它是n个结点的有限集合。
当n等于0时为空树;否则为非空树。
r称为根,T1,T2等是除r之外其他结点构成的子集合,每个子集也是一棵树,称为根的子树、
每棵子树的根结点有且只有一个直接前驱,但可以有0个或多个直接后继。
树是一个递归的定义。
结点:包含数据项以及指向其他结点的分支。
结点的度:结点所拥有的子树棵数。
叶结点:度为0的结点,又称终端结点。
分支结点:除叶结点外的其他结点,又称为非终端结点。
子女结点:若结点x有子树,则子树的根结点即为结点x的子女。
父节点:若x结点有子女,它即为子女的父节点
兄弟结点:同一父结点的子女互称为兄弟。
祖先结点:从根结点到该结点所经分支上的所有结点。
子孙结点:某一结点的子女,以及这些子女的子女都是改结点的子孙。
结点所处层次:简称结点的层次,即从根到该结点所经路径上的分支条数。
树中任一结点的层次为它的父结点的层次加1。结点所处层次也称为结点的深度。
树的深度:树中距离根结点最远的结点所处的层次即为树的深度。
树的高度:从下往上,叶结点的高夫为1,非叶结点的高度等于子女加一。(不同教材定义不同)
树的度:树中结点度的最大值。
有序树:树中的各子树是有顺序的。
无序树:树中各结点的子树可以交换位置。
森林:m(m>=0)棵树的集合。
树的抽象数据类型(接口)
构造树
销毁树
返回根结点地址,若树为空,返回0
建立树的根结点
返回第一个子女的地址,无子女返回0
返回下一个兄弟的地址,无兄弟返回0
返回结点中存放的数据
在下方插入新子女,插入失败返回false,插入成功返回true
删除第i个子女及其全部子孙,失败false,成功true
删除以t为根结点的子树
判断树是否为空
遍历树