数据结构(树)

特征: 1.可以动态储存O(1)。2.查找的速度也比较快 O(logn)

树:n(n>=0)个结点的有限集合。n = 0 ,空树。

在任意一个非空树中,

1,有且仅有一个特定的根结点

2,当n>1 时,其余结点可分为m个互不相交的有限集合T1,T2,T3.。。。。Tm,其中每一个

集合又是一个树,并且称谓子树。

结点拥有子树的个数称谓结点的度。度为0的结点称谓叶结点。度不为0,称谓分支结点。

树的度数是指,这棵树中,最大的结点的度数,称谓树的度数。

树的深度或高度,从根开始,根为第一层,根的孩子为第二层。

树的存储,顺序结构,链式结构。

二叉树,binary tree

n个结点的有限集合,集合要么为空树,要么由一个根结点和两棵互不相交,分别称谓根结点的左子树和

右子树的二叉树组成。。

特点,

1,每个结点最多两个子树。

2,左子树和右子树是有顺序的,次序不能颠倒。

3,如果某个结点只有一个子树,也要区分左,右子树。

特殊的二叉树

1,斜树,所有的结点都只有左子树,左斜树,所有结点都只有右子树,右树。

2,满二叉树,所有的分支结点都存在左右子树,并且叶子都在同一层上。

3,完全二叉树,对于一颗有n个结点的二叉树按层序编号,如果编号i(1<=i<=n)的结点于同样深度的

满二叉树中编号为i的结点在二叉树中位置完全相同,则这可树为完全二叉树。

特性

1,在二叉树的第i层上最多有2^(i-1)个结点 i>=1

2,深度为k的二叉树至多有2^k -1 个结点 k>=1

3,任意一个二叉树T,如果其叶子结点的个数是n0,度数为2的结点数为n2, n0 = n2 +1;

4,有n个结点的完全二叉树深度为(logn/log 2) +1;

层序,广度遍历 ,从上往下,从左往右。

深度 遍历

前序,根左右,先访问根,然访问左,访问右。

中序,左根右,先从根开始(不是先访问根),从左开始访问,在访问根,在访问右结点。

后序,左右根,先从根开始(不是先访问根),先访问左,在访问右。在访问根。

相关推荐
badhope20 小时前
Mobile-Skills:移动端技能可视化的创新实践
开发语言·人工智能·git·智能手机·github
码云数智-园园21 小时前
微服务架构下的分布式事务:在一致性与可用性之间寻找平衡
开发语言
疯狂吧小飞牛1 天前
GPG基础指令
linux·服务器·网络
C++ 老炮儿的技术栈1 天前
volatile使用场景
linux·服务器·c语言·开发语言·c++
hz_zhangrl1 天前
CCF-GESP 等级考试 2026年3月认证C++一级真题解析
开发语言·c++·gesp·gesp2026年3月·gespc++一级
Liu628881 天前
C++中的工厂模式高级应用
开发语言·c++·算法
IT猿手1 天前
基于控制障碍函数的多无人机编队动态避障控制方法研究,MATLAB代码
开发语言·matlab·无人机·openclaw·多无人机动态避障路径规划·无人机编队
AI科技星1 天前
全尺度角速度统一:基于 v ≡ c 的纯推导与验证
c语言·开发语言·人工智能·opencv·算法·机器学习·数据挖掘
sunwenjian8861 天前
Java进阶——IO 流
java·开发语言·python
波特率1152001 天前
const关键字与函数的重载
开发语言·c++·函数重载