郝斌数据结构入门--P60--树
树和森林就是以递归的方式定义的。
树和图的很多算法都是以递归来实现的。
非线性结构-----树
树的定义
专业定义:
1.有且只有一个称为根的节点
2.有若干个互不相交的子树,这些子树本身也是一棵树
通俗的定义:
1.树是由节点和边组成
2.每个节点只有一个父节点,但可以有多个子节点
3.但有一个节点例外,该节点没有父节点,此节点称为根节点
专业术语:
节点、父节点、子节点、子孙、堂兄弟、
深度:从根节点到最底层节点的层数
叶子节点:没有子节点的节点
非终端节点:实际就是非叶子节点
度:子节点的个数
树的分类
一般树:任意一个节点的子节点的个数不受限制
二叉树:任意一个节点的子节点个数最多两个,且子节点的位置不可更改
二叉树的分类:
一般二叉树:
满二叉树:在不增加树的层数的前提下,无法再多添加一个节点的二叉树
完全二叉树:如果只是删除了满二叉树最底层最右边的连续若干个节点,形成了的二叉树
(完全二叉树包含了满二叉树,满二叉树是完全二叉树的一个特例)
森林:n个互不相交的树的集合