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

二叉树找到下一个中序遍历节点的思路

        假如说我们现在在cur这个节点上,对于中序遍历来说可以知道left子树是全部遍历过的,那么我们下面该遍历right子树

一.right不是空树:cur++是right子树的最左边节点。

二. right是一个空树:那么就相当于cur这棵子树已经是被遍历完了,我们需要向上。那么就会有两种情况:1.cur=parent->left   2.cur=parent->right。

        1.对于cur=parent->left:cur作为一个左子树已经被遍历完了,所以下一个就是parent。

        2.对于cur=parent->right:cur作为一个右子树已经遍历完了,那么就意味着parent这颗子树已经被遍历完了,那就变成的二的情况,将parent当作cur继续重复即可,直到出现情况1或者cur->parent==nullptr结束。

    rbtreeiterator& operator++(){if (_node->_right != nullptr){_node = _node->_right;while (_node->_left) _node = _node->_left;}else{node* parent = _node->_parent;while (parent){if (_node == parent->_left) break;else{_node = parent;parent = parent->_parent;}}_node = parent;}return *this;}

http://www.lqws.cn/news/567541.html

相关文章:

  • foreach、for in 和for of的区别
  • VMware报错问题解决记录
  • NAND Flash BCH和FTL
  • 聊聊横向移动中的实际技术点 ----- ResponderSMB
  • FastAPI+Sqlite+HTML的登录注册与文件上传系统:完整实现指南
  • 驱动开发系列58 - 揭开内核IRQ框架的神秘面纱
  • 对基尼指数作出的努力
  • jenkins启动报错,一直无法启动
  • 介绍Windows下的由Sysinternals开发的一些小工具
  • 实战篇----利用 LangChain 和 BERT 用于命名实体识别-----完整代码
  • OpenAI 系列大模型发展时间轴与主要特性
  • 用Flink打造实时数仓:生产环境中的“坑”与“解药”
  • Mac homebrew 安装教程
  • linux系统---Nginx反向代理与缓存功能
  • Springboot 集成 SpringState 状态机
  • 代码随想录打卡第一天
  • C语言中常见字符串处理函数
  • 量子算法入门——5.Qiskit库介绍与简单应用(2)
  • Ubuntu服务器(公网)- Ubuntu客户端(内网)的FRP内网穿透配置教程
  • 博图SCL编程利器:CASE OF 语句详解与应用指南之设备运行模式选择框架
  • 领域驱动设计(DDD)【28】之实践或推广DDD的学习
  • docker compose基本使用以及示例
  • 基于springboot+vue的数字科技风险报告管理系统
  • URL带有中文会引入哪些问题
  • http相关网络问题面试怎么答
  • 算法-基础算法-递归算法(Python)
  • 第十二节:Vben Admin 最新 v5.0 (vben5) 快速入门 - 两种权限控制方式(附前后端代码)
  • Vue 3 Teleport 特性
  • DXYZ投资-ai公司
  • 左神算法之Zigzag方式打印矩阵