当前位置: 首页 > news >正文

二叉树的学习

除了根节点外的其他节点只有一个直接前驱,有多个直接前驱的逻辑结构叫做图

任何一个树都可以看成是一个根节点和若干个不相交的子树构成的;

构建思维导图时使用树形结构

题目中给出AB是堂兄弟节点说明他们处在同一层

描述两节点之间的路径是从上到下的,同层没有路径,一条边记录长度为1

常见考点

二叉树的详解

将满二叉树编号更大的节点去掉就是完全二叉树;

满二叉树是一种特殊的完全二叉树;

i/2,n/2均为向下取整;i表示当前节点编号,n表示节点总数;

需要经常用到元素的排序搜索时可以使用二叉排序树;

我们追求左右子树的平衡就可以的得到更好更高效的二叉排序树

搜索效率的提升

叶子节点的个数要比度为2的节点个数多一个;

n=n1+2n2+1:度为1的节点提供1个分支,度为2的节点提供2个分支,没人给根节点提供分支所以+1;

相邻数相加为奇,同时n1为0或1,

已知二叉树的结点个数为奇数或偶数时可以确定n1的个数

奇:n1=0;n0+n2=2k;n0=n2+1;联立得到个数

二叉树的存储结构

非完全二叉树可以通过跳跃存储的方式反应他们的逻辑关系

通过2i 2i+1找到节点的左孩子和右孩子访问第二个数据判断是否存在true

这种存储方式存在空间浪费

最坏形式

实际应用当中很少用顺序存储二叉树

http://www.lryc.cn/news/470343.html

相关文章:

  • 免费开源的医疗信息提取系统:提升超声波影像的诊断价值
  • Bash 中的 ${} 和 $() 有什么区别 ?
  • SPSS、R语言因子分析FA、主成分分析PCA对居民消费结构数据可视化分析
  • 高级SQL技巧掌握
  • 数组实例之三子棋的实现(C语言)
  • 【Linux驱动开发】设备树节点驱动开发入门
  • C++——string的模拟实现(下)
  • 面试 Java 基础八股文十问十答第二十九期
  • 454.四数相加||
  • 禅道源码部署
  • ️ Vulnhuntr:利用大型语言模型(LLM)进行零样本漏洞发现的工具
  • 【Android】多渠道打包配置
  • Spring Boot Configuration和AutoConfiguration加载逻辑和加载顺序调整
  • 点餐系统需求分析说明书(软件工程分析报告JAVA)
  • Python条形图 | 指标(特征)重要性图的绘制
  • 危险物品图像分割系统:一键训练
  • 城市景色视频素材下载好去处
  • 基于SSM美容院管理系统的设计
  • Threejs 实现3D 地图(04)3d 地图的柱状图和文字显示
  • Oracle 第2章:安装与配置Oracle
  • 动态规划 —— 斐波那契数列模型-解码方法
  • PPT / Powerpoint中利用LaTeX输入公式
  • C++ 模板专题 - 类型擦除
  • RuoYi-Vue项目 重点代码讲解
  • pandas习题 024:用字典构造 DataFrame
  • 如何在Node.js中执行解压缩文件操作
  • 梦熊 CSP-S模拟赛 T3 youyou 的序列 II
  • 记录下docker部署gitlab-ce-17.5版本及客户端git拉取方式配置
  • opencv-platform实现人脸识别
  • leetcode 有重复字符串的排列组合