50种遍历树的方法
来源:互联网 发布:阴茎 身高 知乎 编辑:程序博客网 时间:2024/05/30 21:58
推荐一首歌50ways to leave your lover
50当然是虚指,包括遍历的方法和实现的方法
常见遍历顺序:前序、中序、后序
常见实现方法:递归、栈、队列
遍历树的核心在于“遍历”,输出所有节点,并对一个节点只输出一次
换个角度,对每个节点,确定该节点相对于相连接点的优先级,优先级定了,按优先级访问,就能达到目的
递归:左节点优先、右节点优先、父节点优先,这三种是常见的。然而左中右共有6种排列
队列:从上到下遍历x左/右
不用递归与栈队列:
中序
对节点i,
初始化为根节点
** 当i.left !=null,i=i.left
i走到叶节点,输出
回溯过程
判断i与父节点关系 i==i.parent->left ? 是 输出i.parent 往右走i=i.parent->right,回到**处
否,继续上爬 i=i.parent
i=root
while(!判断为完成遍历后回溯至根)
while(i.left !=null)
i=i.left
fun(i) //左节点为空,打印节点(左空节点)
while(i==i.parent->right)
i=i.parent
if(i==i.parent->left)
fun(i.parent)//由左节点回溯至父节点,打印父节点
i=i.parent.right
判断为完成遍历后回溯至根这个分情况:root.right==null ||root.left==null回溯到根结束
否则记录回溯到根的次数>2 结束
0 0
- 50种遍历树的方法
- 树的遍历方法
- 二叉树遍历的6种遍历方法
- 三种遍历树的方法
- 二叉树的三种遍历方法
- 树的7种遍历方法
- 遍历二叉树的三种方法
- 二叉树的三种遍历方法
- 二叉树的几种遍历方法
- 二叉树的几种遍历方法
- java实现二叉树的构建以及三种遍历方法(先序遍历,中序遍历,后续遍历)
- 二叉树的遍历方法
- 二叉树的遍历方法
- 二叉树的遍历方法
- 二叉树的遍历方法
- 二叉树的遍历方法
- 6-2 二叉树的遍历 (二叉树的四种遍历方法)
- 树的三种遍历方法的非递归版本
- Node.js开发入门—HTTP文件服务器
- UVa 11059
- HTTP状态码表
- hdu 4614 Vases and Flowers(线段树区间更新+二分)
- 51.TCP Socket服务器编程
- 50种遍历树的方法
- RCFProto及编译
- 52. stringByAppendingPathComponent和stringByAppendingString的区别
- 相关博文链接
- Spark学习笔记之-Spark on yarn(动态资源调度)
- 软工之开发阶段
- JSTL标签 参考手册
- C语言文件操作1
- 香蕉派 Bananapi M2 安装wiringpi