二叉树 —— 中序遍历结点的后继
想要获取中序遍历时某一节点的直接后继,
- 首先在数据结构上,结点必须维护指向父节点的指针(parent),
- 因为当前结点的后继有可能是其父节点,
- 如果其本身没有右孩子;
- 或者本身是左孩子结点;
- 因为当前结点的后继有可能是其父节点,
- 注意对当前结点进行分类讨论
- 是否有右孩子
- 有:递归遍历右孩子的左孩子,直到没有左孩子为止;
- 无:当前结点是否为右孩子,
- 是:
- 否:返回其父结点;
- 是否有右孩子
template<typename T>
BinNodePosi(T) BinNode<T>::succ(){BinNodePosi(T) s = this;if (rChild) {s = rChild;while (HasLChild(s)) s = s->lChild;} else{while (IsRChild(s)) s = s->parent;s = s->parent;}return s;
}
转载于:https://www.cnblogs.com/mtcnn/p/9423735.html
二叉树 —— 中序遍历结点的后继相关推荐
- 【LeetCode 剑指offer刷题】树题19:8 二叉树中序遍历的下一个结点
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 8 二叉树中序遍历的下一个结点 题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注 ...
- 不用栈的二叉树中序遍历
不用栈的二叉树中序遍历 // 中序遍历非栈非递归 void inOrder_noRecursion_noStack(TreeNode* r, char* pattern) {TreeNode* cur ...
- 二叉树中序遍历线索化 C++ 递归实现
二叉树中序遍历线索化 中序遍历有一个特点,只要不是叶子节点,遍历的时候左孩子一定是当前节点的上一个访问节点:右孩子一定是当前节点的下一个访问节点. 如果把叶子节点的左右孩子都利用起来,把空的左孩子做成 ...
- 二叉树中序遍历线索化
#include<stdio.h>typedef struct ThreadNode{int data;struct ThreadNode *lchild,*rchild;int ltag ...
- 二叉树中序遍历Stack实现
之前也知道递归的实质就是Stack,但一直也没怎么思考.今天看到一个二叉树中序遍历的算法题,想着可以自己用栈实现一下. 首先中序遍历二叉树的访问顺序是左子树-根节点-右子树.既然是树的遍历,我们需要定 ...
- 详细图解二叉树中序遍历(非递归C++)LeetCode94
详细图解二叉树中序遍历(非递归) 二叉树中序递归含义 LeetCode题目94 详细图解 源代码 运行结果 二叉树中序递归含义 中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树.若二叉树为空则结 ...
- 【C语言】二叉树中序遍历(递归和非递归)算法
二叉树中序遍历的实现思想是: 访问当前节点的左子树: 访问根节点: 访问当前节点的右子树: 图 1 二叉树 以图 1 为例,采用中序遍历的思想遍历该二叉树的过程为: 访问该二叉树的根节点,找到 1: ...
- 二叉树中序遍历 (C语言实现)
在计算机科学中,树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构.二叉树是每个节点最多有两个子树的有序树.通常子树被称作"左子树"(l ...
- Java 二叉树中序遍历(递归/非递归)
Java 二叉树中序遍历(递归/非递归) 中序遍历 代码实现 递归方式 非递归方式 简介: 遍历是对树的一种最基本的运算,所谓遍历二叉树,就是按一定的规则和顺序走遍二叉树的所有结点,使每一个结点都被访 ...
最新文章
- 一文搞懂TCP的三次握手和四次挥手
- 文本分类之特征简约算法说明
- Mysql数据库基础系列(二):表结构、键值
- Delphi 对象的创建(create)与释放(free/destory)
- Huawei LiteOS简介
- 数据科学 IPython 笔记本 8.6 可视化误差
- SQL Server 内存泄露(memory leak)——游标导致的内存问题
- 学习笔记 - Nginx在多层代理下获取真实客户端IP地址
- [苹果技巧]苹果系统用于系统监控和管理的命令
- 网络中的一些专业名词解释
- 使matlab2018支持使用VS2019编译
- u盘在 计算机管理显示无媒体,urdrive_u盘显示无媒体怎么办_启动盘
- Excel2007中文显示乱码的解决方法(亲自实践)
- PostgreSQL 配置文件 postgresql.conf 及 postgresql.auto.conf
- 非参数统计的Python实现——卡方独立性检验
- elasticsearch服务自动断掉
- 在Anaconda下创建一个新的环境并安装tensorflow
- 发改委印发三年行动计划 智能机器人有望成为下一片蓝海
- ubuntu11.10 安装谷歌拼音输入法详细步骤
- python中的format什么意思中文-python中format函数什么意思