树
计算机中的树很怪,它是倒着长的
通俗来说,树是一个n个点的集合,其中有一个点为树的根,这些点之间共有n-1条边,每条边都表示着父子关系
二叉树
每个结点最多有两个儿子的树叫做二叉树
二叉树的储存
struct node{
int l,r;
}t[maxn];
完全二叉树和满二叉树
满二叉树就是每个结点只有无儿子和两个儿子两种情况
如图就是一个满二叉树
完全二叉树
1.叶子节点都在最后一层或者倒数第二层
2.叶子节点都向左聚拢
特点:
(1)所有的叶结点都出现在第k层或k-l层(层次最大的两层)
(2)对任一结点,如果其右子树的最大层次为L,则其左子树的最大层次为L或L+l。
二叉树的前中后遍历
先序遍历
按照根节点->左子树->右子树的顺序访问二叉树
中序遍历
按照左子树->根节点->右子树的顺序访问
后序遍历
按照左子树->右子树–>根节点的顺序访问
这里给一个求先序遍历的代码