树和二叉树

树与图的区别:

1.树在本质上其实就是不包含回路的连通无向图;
树和二叉树_第1张图片

2.关于树的一些特点:
(1).任意两个结点有且只有唯一的一条路径连接;
(2).n个结点,那么刚好n-1条边;
(3).在一棵树中加一条边将会构成一个回路;
3.根:一棵树有且只有一个根结点,比如上图中的数值为1的点就是根结点;
子结点:上图中除了1其余都是子结点,没有父结点的结点是根结点(祖先);
叶结点:没有子结点的结点就是叶结点,如上图的3.4.5
其余既不是根结点又不是叶结点的叫做内部结点,如上图的2;
最后每个结点是有深度的,比如3号节点的深度(从根结点到这一层的层数)是2;

二叉树

1.定义:每个结点最多有两个儿子,分别是左儿子、右儿子;递归定义:二叉树要么为空,要么由根结点、左子树、右子树组成;二叉树又分为满二叉树和完全二叉树;
2.满二叉树:每个内部结点都有两个儿子,也就是所有的叶结点都有相同的深度;
树和二叉树_第2张图片

3.满二叉树深度与结点的关系:假如深度为n,那么结点就为2^n-1;
4.完全二叉树:除了最右边位置上有一个或者几个叶结点缺少外,其余都是丰满的
树和二叉树_第3张图片

(1).对于完全二叉树:我们可以用一个一维数组来存储它,从根结点开始
树和二叉树_第4张图片

(2).如果给父结点编号为k,那么他的左儿子就是2k,右儿子2k+1;
(3).如果一棵二叉树有N个结点,那么这个完全二叉树的高度为log2N(2)为底;
完全二叉树的最典型应用就是——堆;

后续再补

你可能感兴趣的:(树和二叉树)