Tree Traversal(二叉树的遍历)
Binary Tree 二叉树
Full Binary Tree 满二叉树
叶节点都在最底层,其他节点都有左、右子节点。
N = 2^L - 1
Complete Binary Tree 完全二叉树
除了最后一排,其他排都是满的,最后一排的子节点集中在左边。
如果父节点是 i, 他的左子节点是 2*i , 右子节点是 2*i+1;
如果子节点是i, 父节点就是floor(i/2)
Binary Search Tree 有序二叉树
- 左子树上的值小于根节点;
- 右子树上的值大于根节点;
- 没有值相等的节点;
- 任意节点的左、右子树也为有序二叉树
Tree Traversals (Inorder, Preorder and PostOrder) 树的遍历(中序,前序,后序遍历)
- Preorder 前序遍历: Root - Left - Right (NLR) 父节点 - 左子节点 - 右子节点
- Inorder 中序遍历:Left - Root - Right (LNR) 左子节点 - 父节点 - 右子节点
- Postorder 后续遍历:Left - Right - Root (LRN) 左子节点 - 右子节点 - 父节点
DFS (深度优先):
preorder(node)if (node == null) return;visit (node);preorder(node.left);preorder(node.right);
inorder(node)if (node == null) return;preorder(node.left);visit (node);preorder(node.right);
postorder(node)if (node == null) return;preorder(node.left);preorder(node.right);visit (node);
BFS (广度优先):
levelorder(root)q ← empty queueq.enqueue(root)while (not q.isEmpty())node ← q.dequeue()visit(node)if (node.left ≠ null)q.enqueue(node.left)if (node.right ≠ null)q.enqueue(node.right)
LeetCode Tree 问题:(缓慢更新)
https://github.com/JoyceHao/Online-Programming-Solution
Ref:
Wikipedia
Tree Traversal(二叉树的遍历)相关推荐
- [LeetCode] Binary Tree Level Order Traversal 二叉树层次遍历(DFS | BFS)
目录: 1.Binary Tree Level Order Traversal - 二叉树层次遍历 BFS 2.Binary Tree Level Order Traversal II - 二叉树层次 ...
- tree traversal (树的遍历) - 层序遍历 (level order traversal) - 二叉树的层序遍历
tree traversal (树的遍历) - 层序遍历 (level order traversal) - 二叉树的层序遍历 1. tree traversal (树的遍历) 1.1 深度优先搜索 ...
- tree traversal (树的遍历) - postorder traversal (后序遍历)
tree traversal (树的遍历) - postorder traversal (后序遍历) 1. tree traversal - 树的遍历 二叉树的遍历 (traversing binar ...
- tree traversal (树的遍历) - preorder traversal (前序遍历)
tree traversal (树的遍历) - preorder traversal (前序遍历) 1. tree traversal - 树的遍历 二叉树的遍历 (traversing binary ...
- tree traversal (树的遍历) - inorder traversal (中序遍历)
tree traversal (树的遍历) - inorder traversal (中序遍历) 1. tree traversal - 树的遍历 二叉树的遍历 (traversing binary ...
- LeetCode:144_Binary Tree Preorder Traversal | 二叉树的前序遍历 | Medium
题目:Binary Tree Preorder Traversal 二叉树的前序遍历,同样使用栈来解,代码如下: 1 struct TreeNode { 2 int val; 3 TreeNode* ...
- 二叉树遍历(Binary Tree Traversal)
二叉树遍历(Binary Tree Traversal) 二叉树的递归遍历比较简单,这里说一下非递归遍历,以中序遍历为例子. 非递归遍历主要用到栈来协助进行.对于一个二叉树,首先根节点入栈,如果有左儿 ...
- 94. Binary Tree Inorder Traversal二叉树的中序遍历
网址:https://leetcode.com/problems/binary-tree-inorder-traversal/ 参考:https://leetcode.com/problems/bin ...
- Tree(3)--二叉树的实现及四种遍历(递归/非递归)
1.二叉树的实现 按前序遍历进行输入,#表示空树 struct node{char data;struct node *left, *right; };class tree{ public:tree( ...
最新文章
- httpTomcat
- 面向对象三大特性(封装,继承,多态)之多态
- jquery~ajax()学习
- 主创仅2人,题材是大型3D战争,这款游戏竟然“超逼真”?
- 利用回溯法解决1-9之间添加+或-或使得运算结果为100的问题
- 锻炼编程能力的10个游戏:通关既巅峰!
- java keytool 使用总结(转)
- 数据库学习--DQL(数据库查询语言)
- Pyhton-Web框架之【Django】
- [uva11235]Frequent values(RMQ,ST,离散化)
- J - X and Beasts
- linux mysql 密码策略_Linux Ubuntu 14 MySQL 密码策略(复杂度)和审计插件
- Linux中fork函数作用,深入解析Linux中的fork函数
- linux启动和grub修复
- 抖音运营攻略大全,新手主播必知干货丨国仁网络
- 微信公众平台账号迁移流程、申请函公证及留言功能开通方法
- C语言每日一练——第74天:黑与白问题
- 计算机专业中职生自我鉴定报告,【中职生计算机自我鉴定】应届计算机毕业生自我鉴定...
- 在Unity中利用Mono.Cecil将代码注入到Dll中
- 跟美团API对接,以及生成签名,同步数据到数据库
热门文章
- 2020软件测试学习自学路线分享,附完整资料,绝对有用哟
- AD原理图设计中如何添加NET CLASS和差分线
- css字体毛边属性设置
- 网络代理【1】什么是网络代理
- ubuntu 16.04 + GTX1050安装nvidia驱动
- outlook如何撤回邮件?(中英文)
- tomcat配置manger账户和host-manager账户的方法详细图解
- 微信技术总监:一亿用户背后的架构秘密
- 关于android某些手机java.lang.UnsatisfiedLinkError: No implementation found for ......的问题
- 2021-07-02软件构造学习中遇到的问题