1、树的基本概念
(1)树:非线性结构,每个元素可以有多个前驱和后继;
(2)树的结点:树种的数据元素;结点的度:结点拥有子树的数目
2、二叉树
(1)二叉树:每个结点最多2棵子树;二叉树是有序树,左子树、右子树是顺序的,不能交换次顺;
(2)满二叉树:
①:一颗二叉树的所有分支结点都存在左子树和右子树,并且所有叶子结点只存在最下面一层;
②:k为深度,则结点数为2^K-1;例如:k=4 则结点数为2^4=16-1=15
3、完全二叉树
(1)完全二叉树:k-1层一定是个满树,低层的叶子结点必须靠左边放;
4、二叉树特性
①:在二叉树的第i层上,至多有2^(i-1)个结点;例如 i=1, 2^0=1, i=2,2^1=2...;
②:深度为k的二叉树,至多有2^K-1个结点;k=1:1,k=2:3,k=3:7;
③:高度为k的二叉树,至少有k个结点;
④:具有n个结点的完全二叉树的深度为int(log₂n)+1或者math.ceil(log₂(n+1));
⑤:有而二叉树如下:
# 有一颗n个结点的完全二叉树,结点按照如图编号;
- 如果i=1,则结点i是二叉树的根结点;
- 如果2i>n,则结点i无左孩子,即结点i为叶子结点,否则其左孩子结点编号为2i;
- 如果2i+1>n,则结点i无右孩子;