树:
首先要清楚的概念是:
1、结点的度
即该结点有多少个子结点。如1号结点的度是3。
2、树的度
所有结点的度的最大值。如图,树的度是3。
3、叶子结点
结点的度为0的结点。(既没有子结点)
4、分支结点
除了 叶子结点 以外的所有结点。(与叶子结点互补)
5、内部结点
除了 根结点 和 叶子结点 以外的所有结点。
{
6、父结点
7、子结点
8、兄弟结点
(6、7、8都是结点与结点之间相对而言的,同字面意思一样)
}
9、层次
如图所示树的层次为4。(即最最长有多少层)
相关概念:
1、 n = k + 1
既:所有结点的度 + 1 = 树的结点个数
树的遍历:
1、 前序遍历
先访问 根结点 ,然后访问其 子结点 ,若 子结点 下面还有 子结点 ,则继续往下访问。 子结点的访问循序从左往右。 若没有了 子结点 则退一层访问其 兄弟结点。
如上图的 前序遍历 的结果为: 1、 2、 5、 6、 7、 3、 4、 8、 9、 10
2、 后序遍历
先访问 叶子结点 ,在访问跟结点。 既从 子结点 开始访问 然后到 兄弟结点 最后到父结点.
如上图的 后序遍历 的结果为: 5、 6、 7、 2、 3、 9、 10、 8、 4、1
3、 层次遍历
一层一层的从左往右开始访问。
如上图的 中序遍历 的结果为: 1、2、3、4、5、6、7、8、9、10
二叉树:
二叉树的类型:
1、 满二叉树:
完整的金字塔形。
2、 完全二叉树:
若 完全二叉树 有N层,那么N-1层是 满二叉树; 而且最后一次要 从左至右 要 有规律的 排列。
二叉树的重要特性:
1、在二叉树的第i层上最多有 2的i次方-1 个结点 (i 大于等于1);
2、深度为k的二叉树最多有 2的k次方-1 个结点 (k 大于等于1);
注:k是从0开始算起的。
3、对任何一颗二叉树,如果其叶子结点数为 n0 ,度为2的结点数为 n2 ,则 n0 = n2+1;
二叉树的遍历:
1、 前序遍历
先访问 根结点 然后到 左子结点,一直下去,没有了 子结点 然后就退一层,若有 右结点 则访问 右子结点 在到它的 子结点。
如上图 前序遍历的结果是:1、 2、 4、 5、 7、 8、 3、 6
2、 中序遍历
先访问 左子结点 然后到其的 父结点, 在到 右子结点 的左子结点 ,最后到右结点。
注:先访问 根结点 的 左结点树, 然后到 根结点, 最后到 右子结点。
如上图 中序遍历的结果是:4、 2、 7、 8 、5、 1、 3、 6
3、 后序遍历
先从 左子结点 的底部一直网上访问,遇到其 父结点 则先访问其 右子结点,然后一直网上访问最后访问父结点。
如图 后序遍历的结果是:4、 8、 7、 5、 2、 6、 3、 1
4、 层次遍历
一层一层的遍历。
如上图 层次遍历的结果是:1、 2、 3、 4、 5、 6、 7、 8
迟些回来补充。