树-二叉树的基本概念
程序员文章站
2023-11-03 13:42:09
二叉树的特点 每个结点至多有二棵子树(即不存在度大于2的结点) 二叉树的子树有左、右之分,且其次序不能任意颠倒 卡特兰数 具有n个结点的不同形态的二叉树数目,即所谓的n阶卡特兰数。(也是含有n个结点的栈的出队顺序的总情况) 二叉树的性质(约定空二叉树的高度为-1) 高度为h>=0的二叉树至少有h+1 ......
二叉树的特点
- 每个结点至多有二棵子树(即不存在度大于2的结点)
- 二叉树的子树有左、右之分,且其次序不能任意颠倒
卡特兰数
具有n个结点的不同形态的二叉树数目,即所谓的n阶卡特兰数。(也是含有n个结点的栈的出队顺序的总情况)
二叉树的性质(约定空二叉树的高度为-1)
- 高度为h>=0的二叉树至少有h+1个结点。
- 高度为h>=0的二叉树至多有2h+1-1个结点
- 含有n>=1个结点的二叉树的高度至多为n-1
- 含有n>=1个结点的二叉树的高度至少为[log2n](向下取整)
- 对于任何一棵二叉树,如果其叶节点的数目为n0,度为2的结点数目为n2,则n0=n2+1
证明:设n1为二叉树中度为1的结点数目,故结点总数为n=n0+n1+n2.
在二叉树中,除根结点外,每个结点都有一条分支进入,设b为分支总数,则n=b+1.
又因为分支有度为1和度为2的结点射出,b=n1+2n2
于是n=n1+2n2+1=n0+n1+n2,得到n0=n2+1
满二叉树
- 定义:一棵高度为h且有2h+1-1个结点的二叉树称为满二叉树
完全二叉树
- 定义:若一棵二叉树最多只有最下面的2层上结点的度数可以小于2,并且最下面一层上的节点都集中在该层的最左边,则这种二叉树称为近似满二叉树
- 性质:如果对一棵有n个结点的完全二叉树的结点按层序编号,则对任一结点i(1<=i<=n),有
(1) 如果i=1,则结点i是二叉树的根,无双亲;如果i>1,则其双亲是[i/2](向下取整)
(2) 如果2i>n,则结点i无左孩子;如果2i<=n,则其左孩子是2i
(3) 如果2i+1>n,则结点i无右孩子;如果2i+1<=n,则其右孩子是2i+1
- 例题:一棵完全二叉树有1001个结点,其中叶节点的个数是(501)
解:最后一个分支结点的序号为[1001/2]=500,故叶子节点的个数为501
推荐阅读
-
图论小结(一)包括一些最短路,最小生成树,差分约束,欧拉回路,的经典题和变种题。强连通,双连通,割点割桥的应用。二分匹配
-
Element UI框架中巧用树选择器的实现
-
p5.js 毕达哥拉斯树的实现代码
-
使用SQLSERVER 2005/2008 递归CTE查询树型结构的方法
-
1086 Tree Traversals Again (25 分)(二叉树的遍历)
-
1004 Counting Leaves (30 分)(树的遍历)
-
莫不是村上春树点的外卖
-
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
-
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
-
Python利用前序和中序遍历结果重建二叉树的方法