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

二叉树结尾——销毁,层序遍历与判断完全二叉树

本文之后,笔者的二叉树学习暂时告一段落,更难的二叉树学习笔者将在C++中在研究,本文要研究的问题比较简单,首先我们要会销毁二叉树,销毁二叉树当然也也要用递归思想,但是要注意顺序,根节点是找到左右子节点的关键,所以不能没有根结点,所以不能先删除根节点,笔者不再过多赘述,读者直接看代码即可:

下面的问题就比较困难了,层序遍历这个二叉树,首先我们要知道什么是层序遍历,就是一层一层遍历,如何遍历并打印呢?这里需要用到之前的知识——队列,为什么呢?因为队列就是经典的先进先出,所以遍历的时候,根节点进,根节点出,根节点左孩子进,右孩子出,诸如此类,因为我们尝试用队列,当然,这种算法又叫BFS方法,下面看代码:

观察上面的代码,首先初始化,然后进行了一次入队操作,只要根结点不为0,那么就入队,不过需要注意的是,这里进入队列的不是结点,更不是结点对应的数值,应该是指向结点的指针,引起需要用&q,然后就是正常的操作了。

最后,在层序遍历的基础上,进行判断是否为完全二叉树的操作:

源码笔者放在github上了:数据结构基础/堆,主树 ·z-yi-han/数据结构基础

希望读者能给笔者点赞

http://www.dtcms.com/a/365837.html

相关文章:

  • python如何解决html格式不规范问题
  • windows系统服务器测试部署springboot+vue+mysql项目
  • 使用 Acme.sh 获取和管理免费 SSL 证书
  • vue2头部布局示例
  • Anaconda3出现Fatal error in launcher: Unable to create process using.....问题
  • python 连接数据库进行文件查重(SAP版本)
  • RoPE位置编码缩放因子的最优解:频率维度与位置敏感度的精妙权衡
  • TypeScript:Promise的详细用法讲解
  • 面试复习题--kotlin的设计模式
  • shell内置命令
  • UART更好的封装 添加容错代码
  • Qt6用Chart模块做数据可视化?别再用老套路,看看这套35张图背后的秘密
  • [密码学实战](GBT 15843.2-2017)Java实现基于SM4的实体鉴别机制(四十八)
  • MinIO祭了,RustFS来了!
  • 关于node中的一些用到的读取文件方法
  • Dubbo3单端口多协议源码分析
  • 员工拍照泄密?U盘偷拷资料?终端数据安全如何守护?
  • G1垃圾收集器
  • 【高级】系统架构师 | 信息系统战略规划、EAI 与新技术
  • 攻防世界secret-galaxy-300
  • 深度学习----卷积神经网络的数据增强
  • 如何给JavaScript语句添加注释?
  • 19.JS
  • Jmeter怎么实现接口关联?
  • 算法题(198):数字三角形
  • 使用 Terraform、AWS 和 Python 构建无服务器实时数据管道
  • 学习React-9-useSyncExternalStore
  • Ubuntu下把 SD 卡格式化为 FAT32
  • 【工具变量】“国家级大数据综合试验区”试点城市DID(2000-2024年)
  • ArkTS状态管理V1