二叉树 —— 中序遍历结点的后继
2016-09-17 12:55
155 查看
想要获取中序遍历时某一节点的直接后继,
首先在数据结构上,结点必须维护指向父节点的指针(parent),
因为当前结点的后继有可能是其父节点,
如果其本身没有右孩子;
或者本身是左孩子结点;
注意对当前结点进行分类讨论
是否有右孩子
有:递归遍历右孩子的左孩子,直到没有左孩子为止;
无:当前结点是否为右孩子,
是:
否:返回其父结点;
首先在数据结构上,结点必须维护指向父节点的指针(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; }
相关文章推荐
- MVC的概念
- 查看安卓设备分区信息
- Retrofit2.0使用过程中所踩到的坑
- Spring框架参考手册_5.0.0_中英文对照版_Part II_3.3
- addContentView用法
- ajax使用jsonp解决跨域问题
- C语言 获取字符串的方法
- Java编程题目-10:2的幂
- 找电影最强攻略,最全资源站
- CI数据库的相关操作&获取客户端IP
- java 栈内存 和 堆 内存的涵义及使用范围
- 清除微信缓存
- Java中正则表达式的使用
- Android事件分发机制源码分析
- react-native版本升级
- 安卓实时弹幕demo(二)消息透传
- Django 项目补充知识(JSONP,前端瀑布流布局,组合搜索,多级评论)
- react-native版本升级
- react-native版本升级
- 视图和表的区别