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

深入理解二叉树(2)

数组下标是0的目的是为了方便计算,因为a[i] = *(a+i),数组名是首元素的地址,    所以当i= 0 时a[0] = *(a+0)正好可以表示。

建立大堆和小堆只需要考虑父亲和儿子的大小,不需要考虑兄弟之间的大小关系。

通常把堆(一种二叉树)使用顺序结构的数组来存储,需要注意的是这里的堆和操作系统 虚拟进程地址空间中的堆是两回事,一个是数据结构,一个是操作系统中管理内存的一块区域分段。

二叉树顺序存储在物理上(虚拟的,看不见摸不着的)是一个数组,在逻辑上是一颗二叉树。 

向下调整的时间复杂度是O(N);向上调整的时间复杂度是O(NlogN);

二叉树链式结构的实现:

任何一颗树都要遵循左子树访问完了再访问右子树

这是前序遍历的流程(采用的是递归算法),右子树也是一样的。

1 2 4 N N N 3 5 N N 6 N N 

下面这些递归的算法需要好好思考一下:

递归回去的时候就是返回到当前的代码行然后进行下一行代码的执行。

递归的方法都是按照上面的来递推的。

http://www.xdnf.cn/news/4851.html

相关文章:

  • Music AI Sandbox:打开你的创作新世界
  • 简单说明.nii.gz文件数据结构
  • QVariant 的核心用途
  • Springboot整合kafka简单使用
  • 功率级OBC自动化测试方案
  • swagger3融入springboot
  • keil使用
  • 【CF】Day54——Educational Codeforces Round 161 (Rated for Div. 2) DE
  • 【工具安装】Windows环境下Node.js的安装与配置
  • 网站公安备案流程及审核时间
  • SpringBoot默认选择CGLIB动态代理的深度解析:兼容性、性能与设计哲学
  • 【 window.addEventListener(‘message‘, handleMessage)无效的问题】
  • Java 中常见的数据结构及其常用 API
  • IBM崛起之路——领先的托管与咨询服务提供商
  • 【C++】C++函数指针详解与实用技巧
  • 15前端项目----用户信息/导航守卫
  • zst-2001 历年真题 数据库
  • [操作系统] 进程间通信:system V 信号量
  • 测试用例管理平台哪些好用?9款主流测试平台对比
  • 利用ollama.com本地部署大模型及Java验证全攻略
  • 画流程超神组合deepseek + UML
  • 力扣:多数元素
  • 计算机网络笔记(十六)——3.3使用广播信道的数据链路层
  • Oracle EBS FORM快捷键与触发器的关系与使用
  • Web 架构之前后端分离
  • Golang中集合相关的库
  • C++ 手写一个内存池
  • ollama学习-使用部署Qwen3大模型
  • 从易发性分析到灾后规划,AI大模型如何颠覆传统地质灾害防治?
  • 电厂参与全球能源效率排名的方法