树和二叉树

树型结构:

1、结点之间右分支

2、具有层次关系

根结点:非空树中无前驱结点的结点

结点的度:结点拥有的子树数

当度为零时:称为叶子(终端结点)

二叉树:由一个根结点和左子树和右子树组成

二叉树的性质:

1、在二叉树的第i层上至多有2的 i-1次方个结点(i>=1),至少有i个结点。

2、深度为k的二叉树至多有2的k次方减1个结点(k>=1),至少有k个结点。

3、对任何一颗二叉树T,如果其叶子数为n0,度为2的结点数位n2,则 n0=n2+1

总边数 B = n -1 (n为总结点数), B = n2*2 + n1*1

**满二叉树:**一颗深度为k且有2的k次方减1个结点的二叉树

特点:1、每一层上的结点数都是最大结点

2、叶子结点全部在最底层

编号规则:1、从根结点开始,自上而下,自左而右

2、每一结点位置都有元素

如图所示:在该二叉树中除了叶子结点外,其余结点都有左右子树

完全二叉树:深度为k的具有n个结点的二叉树,当且仅当其每一个结点都与深度为k的满二叉树中的编号为1到n的结点一一对应时

完全二叉树的性质:

1、具有n个结点的完全二叉树的深度为 : | log以2为底n的对数 | +1

注:|x|:称作x的底,即不超过x的最大整数

2、如果对一颗有n个结点的完全二叉树(深度为 | log以2为底n的对数 | +1 )的结点

按层序编号(从第i层到第 | log以2为底n的对数 | +1 层,每层从左到右),则对任一结点

i(1<=i<=n)有

1、如果 i=1,则结点 i 是二叉树的根,无双亲结点;如果 i>1,则其双亲是结点(i/2)

2、如果2i>n,则结点i为叶子结点,无左孩子,否则其左孩子是结点 2i

3、如果2i+1>n,则结点 i无右孩子,否则其右孩子是结点 2i+1

相关推荐
norlan_jame5 小时前
C-PHY与D-PHY差异
c语言·开发语言
ZPC82105 小时前
docker 镜像备份
人工智能·算法·fpga开发·机器人
ZPC82105 小时前
docker 使用GUI ROS2
人工智能·算法·fpga开发·机器人
琢磨先生David5 小时前
Day1:基础入门·两数之和(LeetCode 1)
数据结构·算法·leetcode
颜酱5 小时前
栈的经典应用:从基础到进阶,解决LeetCode高频栈类问题
javascript·后端·算法
多恩Stone5 小时前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc
生信大杂烩5 小时前
癌症中的“细胞邻域“:解码肿瘤微环境的空间密码 ——Nature Cancer 综述解读
人工智能·算法
czy87874755 小时前
除了结构体之外,C语言中还有哪些其他方式可以模拟C++的面向对象编程特性
c语言
蜡笔小马6 小时前
21.Boost.Geometry disjoint、distance、envelope、equals、expand和for_each算法接口详解
c++·算法·boost
m0_531237176 小时前
C语言-数组练习进阶
c语言·开发语言·算法