树和二叉树的特点与异同

简介: 树和二叉树的特点与异同


树是一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合。

它具有以下的特点:

  1. 1.每个结点有零个或多个子结点;
  2. 2.没有父结点的结点称为根结点;
  3. 3.每一个非根结点有且只有一个父结点;
  4. 4.除了根结点外,每个子结点可以分为多个不相交的子树;

树结构是一种非线性存储结构,存储的是具有“一对多”关系的数据元素的集合。


image.png


树的关键特性和重点概念:

  • 树的层次计算规则:根结点所在的那一层记为第一层,其子结点所在的就是第二层,以此类推。
  • 结点和树的“高度”计算规则:叶子结点高度记为1,每向上一层高度就加1,逐层向上累加至目标结点时,所得到的的值就是目标结点的高度。树中结点的最大高度,称为“树的高度”。
  • “度”的概念:一个结点开叉出去多少个子树,被记为结点的“度”。比如我们上图中,根结点的“度”就是3。
  • 叶子结点:叶子结点就是度为0的结点。在上图中,最后一层的结点的度全部为0,所以这一层的结点都是叶子结点。


二叉树


二叉树是指满足以下要求的树:

树可以有多个节点,但是二叉树必须要有两个节点

  • 它可以没有根结点,作为一棵空树存在
  • 如果它不是空树,那么必须由根结点、左子树和右子树组成,且左右子树都是二叉树。如下图:


image.png


在 JS 中,二叉树使用对象来定义。它的结构分为三块:

  • 数据域
  • 左侧子结点(左子树根结点)的引用
  • 右侧子结点(右子树根结点)的引用

在定义二叉树构造函数时,我们需要把左侧子结点和右侧子结点都预置为空:

// 二叉树结点的构造函数 
function TreeNode(val) { 
    this.val = val; 
    this.left = null;
    this.right = null; 
}
// 当你需要新建一个二叉树结点时,直接调用构造函数、传入数据域的值就行了:\
const node  = new TreeNode(1)

如此便能得到一个值为 1 的二叉树结点,从结构上来说,它长这样:




以这个结点为根结点,我们可以通过给 left/right 赋值拓展其子树信息,延展出一棵二叉树。因此从更加细化的角度来看,一棵二叉树的形态实际是这样的:


image.png


了解这些基础知识,为下面二叉树的遍历做准备


目录
相关文章
|
算法 开发者 索引
二分算法详解
本文介绍了二分查找及其相关问题的解决方法,包括基本的二分查找、查找元素的第一个和最后一个位置、求平方根、搜索插入位置、寻找峰值和旋转数组中的最小值等问题。通过详细分析每种情况下的二分查找策略,如循环条件、区间划分及特殊情况处理,提供了清晰的代码实现。适用于算法初学者和需要巩固二分查找技巧的开发者。
420 18
二分算法详解
|
7月前
|
机器学习/深度学习
阿里妈妈首提AIGB并实现大规模商业化落地,将在NeurIPS 2024正式开源Benchmark
阿里妈妈提出AI-Generated Bidding(AIGB)新范式及DiffBid生成式竞价模型,突破传统基于强化学习的自动竞价方法局限。AIGB将自动竞价视为生成问题,通过捕捉复杂依赖关系,提升长期规划和随机环境中的稳定性和效果。DiffBid基于条件扩散建模,灵活生成满足特定目标的竞价轨迹,显著提升GMV和ROI。实验结果表明,DiffBid实现了2.81%的GMV增长和3.36%的ROI增长。然而,生成式建模的复杂性也带来了训练和调优的挑战。 论文链接:https://arxiv.org/abs/2405.16141
295 9
|
算法 C语言
深入理解算法效率:时间复杂度与空间复杂度
深入理解算法效率:时间复杂度与空间复杂度
|
10月前
|
数据采集 机器学习/深度学习 人工智能
《智启新材:人工智能重塑分子结构设计蓝图》
在科技飞速发展的今天,新材料研发竞争激烈,人工智能(AI)以其强大的数据分析和算法能力,为分子结构设计带来革命性突破。传统方法耗时长、成功率低,而AI能快速处理海量数据,挖掘规律,构建精准模型,大幅缩短研发周期,提高成功率。无论是在药物研发还是工业材料领域,AI均展现出巨大潜力,如优化航空航天材料性能、设计新型碳纤维复合材料等。尽管面临数据质量和可解释性挑战,AI在新材料领域的前景依然广阔,正引领材料创新新时代,推动能源革命与物联网发展。
192 9
|
存储 算法
算法的时间复杂度和空间复杂度
本文详细讨论了算法的时间复杂度和空间复杂度,包括它们的概念、计算方法和常见复杂度的对比,并通过多个实例解释了如何计算算法的时间和空间复杂度。
796 0
算法的时间复杂度和空间复杂度
|
缓存 JavaScript 前端开发
Windows7压缩包安装node.js 报错提示windows Server 2012 R2 和安装React脚手架 最详细教程
对于Windows 7安装node.js 提示“This application is only supported on wWindows 8.1,windows Server 2012 R2, or higher.”类似这种情况的,该问题是因为node.js官方在 x12版本后就不支持win7系统了。
|
存储 算法
数据结构之哈希表以及常用哈希的算法表达(含全部代码)
数据结构之哈希表以及常用哈希的算法表达(含全部代码)
740 0
数据结构之哈希表以及常用哈希的算法表达(含全部代码)
|
机器学习/深度学习 存储 算法
【Java高阶数据结构】图-图的表示与遍历
Java高阶数据结构 & 图的概念 & 图的存储与遍历 1. 图的基本概念 1.1 图的属性 图是由顶点集合及顶点间的关系组成的一种数据结构:
516 0
|
数据安全/隐私保护
注销备案须知及操作步骤
若您的网站已经在阿里云成功备案,现要停止该网站的服务,需注销主体或网站在工信部的备案信息。
3476 0
|
存储 算法
【数据结构】图以及图的遍历(深度遍历和广度遍历)
【数据结构】图以及图的遍历(深度遍历和广度遍历)
338 0