树的先序/中序/后序遍历
树的结构如下:
先序(深度搜索遍历DFS):先顶点,再左边节点,接着右边节点
前序结果:ABDEHICFG
中序:先左边节点,再顶点,最后右边节点
中序结果:DBHEIAFCG
后序:先左边节点,然后右边节点,最后为顶点
后序结果:DHIEBFGCA
树的三只序遍历结果:
前序中序后序主要是记住顶点的顺序,顶点先遍历的是前序,顶点在中间遍历的是中序,顶点最后遍历的是后序,无论哪种序都是先遍历左节点再遍历右节点。
树的层级遍历(广度搜索遍历)是按照层级遍历,即先第一层再第二层第三层。。。
层级遍历结果:ABCDEFGHI
深度搜索遍历(DFS)代码实现:
function myDFS(node){let stack = [], nodeList = [];if(node){stack.push(node);while(stack.length){let item = stack.pop();if(item){nodeList.push(item);let children = item.children;if(children){for(let i = children.length - 1; i >= 0; i--){stack.push(children[i]);}}}}}return nodeList;
}
广度搜索遍历(BFS)代码实现:
function myBFS(node){let queue = [], nodeList = [];if(node){queue.push(node);while(queue.length){let item = queue.shift();if(item){nodeList.push(item);let children = item.children;if(children){for(let i = 0, len = children.length; i < len; i++){queue.push(children[i]);}}}}}return nodeList;
}
树的先序/中序/后序遍历相关推荐
- PAT甲级1020 Tree Traversals:[C++题解]树的遍历、由中序序列和后序序列递归建树
文章目录 题目分析 题目链接 题目分析 题意重述:给定一棵二叉树的后序遍历序列和中序遍历序列,让求层次遍历的序列. 分析: 后序遍历:先 左子树.右子树 ,最后再遍历根结点. 中序遍历:先左子树,再根 ...
- 7-10 先序序列创建二叉树,输出先序序列、中序序列、后序序列并输出叶子结点数 (10 分)
7-10 先序序列创建二叉树,输出先序序列.中序序列.后序序列并输出叶子结点数 (10 分) 对于给定的二叉树,输出其先序序列.中序序列.后序序列并输出叶子结点数. 输入格式: 二叉树的先序遍历序列. ...
- 二叉树的构造(前序+中序)---(后序 + 中序)
二叉树的构造(前序+中序)-(后序 + 中序) 思路:要对前序+中序(后序+中序)的构建树的动态过程要了解,思路比较简单,在了解了这个过程之后,理解下面代码就容易了. 过程 参考图: 前序 + 中序: ...
- 由前序序列与中序序列实现后序遍历
二叉树是一种特殊的树,二叉树只有两个分支,分别是该节点的左儿子和右儿子. 前序遍历:就是先遍历根节点,然后再访问左子树与右子树.遍历子树的时候同样也是先遍历根节点然后在遍历他的左子树与右子树. 中序遍 ...
- 非递归先、中、后序遍历二叉树(C语言)
文章目录 前言 一.二叉树非递归遍历算法 1.先序遍历 2.中序遍历 3.后序遍历 二.完整程序 三.运行结果实例 前言 本程序采用C语言编写,栈和二叉树的基本操作函数基于严蔚敏老师的<数据结构 ...
- 二叉树遍历方法——前、中、后序遍历(图解)
目录 一.前序遍历 (1)递归版本 (2)非递归版本 二.中序遍历 (1)递归版本 (2)非递归版本 三.后序遍历 (1)递归版本 (2)非递归版本 四.总结 五.测试程序 六.程序输出 二叉树的遍历 ...
- pandas使用fillna函数并设置bfill参数使用列中的后序值填充缺失值
pandas使用fillna函数并设置bfill参数使用列中的后序值填充缺失值(replace missing values with following values in column in da ...
- 已知一棵二叉树的中序序列和后序序列,写一个建立该二叉树的二叉链表存储结构的算法...
已知一棵二叉树的中序序列和后序序列,写一个建立该二叉树的二叉链表存储结构的算法 #define N 10 //二叉树节点的个数 char postorderstr[]={};//后序序列 char i ...
- Algorithm Gossip (22) 中序式转后序式(前序式)
前言 This Series aritcles are all based on the book <经典算法大全>; 对于该书的所有案例进行一个探究和拓展,并且用python和C++进行 ...
- 栈的应用--中序表达式转后序表达式
栈的应用--中序表达式转后序表达式 infix : a+b*c+(d*e+f)*g postfix : abc*+de*f+g*+ 有以下四种情况: 操作数->直接输出 操作符->将栈顶输 ...
最新文章
- java中jtextfield_java中的JTextField
- Java笔试题库之编程题库 总共30道编程题,掌握了就可以应付中级以内Java面试题
- scanner 获取控制台信息_Java使用Scanner类进行控制台输入实现方法
- POJ 3694Network(Tarjan边双联通分量 + 缩点 + LCA并查集维护)
- 在Linux上安装Chef工作站
- sCMOS相机的读出噪声
- Q84:层级实例网格[Hierarchical Instance Grids]
- 免积分下载百度文库的文章
- uniapp实现微信公众号支付
- 戴尔服务器重装系统步骤
- c语言 switch整型,c语言switch型别强制转换的问题。
- 货捕头API接口,item_search - 根据关键词取商品列表
- Organ at Risk Segmentation for Head and Neck Cancer using Stratified Learning and Neural Architectur
- 计算机存储单位 t后面的单位,字节后面的存储单位是什么
- 牛客小白月赛8 F-数列操作 (有序表)
- OpenSIPS Cluster + CLB在腾讯云部署的坑(从尝试到放弃)
- pinpoint2.3.3安装和部署
- HTML练习---QQ号码申请
- 计算机组成原理【by王道考研计算机】
- fopen文件打开模式