根:根节点,没有前驱(即结点1)
结点的度:一个结点的子树数目称为该结点的度。(例如结点1的结点的度为3,结点2的结点的度为3,结点3的结点的度为0)。
树的度:所有结点度当中,度最高的一个。(上图树的度是3)。
叶子结点:上图应该是:3、5、6、7、9、10(没有后继)
分之结点:除了叶子结点,其他的都称为分之结点,和叶子结点构成互补的关系。(1、2、4、8)
内部结点:分之结点除了根结点以外的。(2、4、8)
父结点:如5号结点就是2号结点的子结点。
子结点:2号结点是5号结点的父结点。
兄弟结点:5、6、7称为兄弟结点,出自同一个父亲2号结点。
这三个概念是一个相对的概念。
层次:0层、1层、2层、3层。
森林:M棵不相交的树的集合
有序树:结点各子树从左至右有序,不能互换
无序树:结点各子树位置可以互换
总结点=所有度结点的和+1(应该是父结点)
树是递归定义的
广义表表示法:如上图的树可表示为:1(2(5,6,7),3,4(8(9,10)))
左孩子-右兄弟表示法:
每个结点除了data域外,还含有两个域,分别指向该结点的最左儿子和右邻兄弟
如上图可表示为:
树的逻辑结构是一对多的关系,有多个直接后继,但只有一个根节点,树是非线性结构,但仍然有顺序存储和线性存储,但是很少用顺序存储(浪费空间,插入删除不方便)。
二叉树是有序树
二叉树的性质:
(一)第i层的结点总数不超过个,i>=1
(二)高度(或深度)为i的二叉树最多有(i>=1)个节点。也可以认为高度为i的二叉树有
个结点,那么该二叉树为满二叉树。
(三)对于任意一棵二叉树,若度数为2的节点有n2个,则叶子数(n0)必定为n2+1,即n0=n2+1
(四)对于完全二叉树,若从上至下、从左至右编号,则编号为i的结点,其左孩子编号必为2i,其右孩子编号必为2i+1,其双亲的编号必为i/2(i=1时除外)(可由此实现顺序存储)
完全二叉树:对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树
可以理解为:第k-1层和满二叉树一样,最后一层叶子节点尽力靠左