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 有序二叉树

  1. 左子树上的值小于根节点;
  2. 右子树上的值大于根节点;
  3. 没有值相等的节点;
  4. 任意节点的左、右子树也为有序二叉树

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(二叉树的遍历)相关推荐

  1. [LeetCode] Binary Tree Level Order Traversal 二叉树层次遍历(DFS | BFS)

    目录: 1.Binary Tree Level Order Traversal - 二叉树层次遍历 BFS 2.Binary Tree Level Order Traversal II - 二叉树层次 ...

  2. tree traversal (树的遍历) - 层序遍历 (level order traversal) - 二叉树的层序遍历

    tree traversal (树的遍历) - 层序遍历 (level order traversal) - 二叉树的层序遍历 1. tree traversal (树的遍历) 1.1 深度优先搜索 ...

  3. tree traversal (树的遍历) - postorder traversal (后序遍历)

    tree traversal (树的遍历) - postorder traversal (后序遍历) 1. tree traversal - 树的遍历 二叉树的遍历 (traversing binar ...

  4. tree traversal (树的遍历) - preorder traversal (前序遍历)

    tree traversal (树的遍历) - preorder traversal (前序遍历) 1. tree traversal - 树的遍历 二叉树的遍历 (traversing binary ...

  5. tree traversal (树的遍历) - inorder traversal (中序遍历)

    tree traversal (树的遍历) - inorder traversal (中序遍历) 1. tree traversal - 树的遍历 二叉树的遍历 (traversing binary ...

  6. LeetCode:144_Binary Tree Preorder Traversal | 二叉树的前序遍历 | Medium

    题目:Binary Tree Preorder Traversal 二叉树的前序遍历,同样使用栈来解,代码如下: 1 struct TreeNode { 2 int val; 3 TreeNode* ...

  7. 二叉树遍历(Binary Tree Traversal)

    二叉树遍历(Binary Tree Traversal) 二叉树的递归遍历比较简单,这里说一下非递归遍历,以中序遍历为例子. 非递归遍历主要用到栈来协助进行.对于一个二叉树,首先根节点入栈,如果有左儿 ...

  8. 94. Binary Tree Inorder Traversal二叉树的中序遍历

    网址:https://leetcode.com/problems/binary-tree-inorder-traversal/ 参考:https://leetcode.com/problems/bin ...

  9. Tree(3)--二叉树的实现及四种遍历(递归/非递归)

    1.二叉树的实现 按前序遍历进行输入,#表示空树 struct node{char data;struct node *left, *right; };class tree{ public:tree( ...

最新文章

  1. httpTomcat
  2. 面向对象三大特性(封装,继承,多态)之多态
  3. jquery~ajax()学习
  4. 主创仅2人,题材是大型3D战争,这款游戏竟然“超逼真”?
  5. 利用回溯法解决1-9之间添加+或-或使得运算结果为100的问题
  6. 锻炼编程能力的10个游戏:通关既巅峰!
  7. java keytool 使用总结(转)
  8. 数据库学习--DQL(数据库查询语言)
  9. Pyhton-Web框架之【Django】
  10. [uva11235]Frequent values(RMQ,ST,离散化)
  11. J - X and Beasts
  12. linux mysql 密码策略_Linux Ubuntu 14 MySQL 密码策略(复杂度)和审计插件
  13. Linux中fork函数作用,深入解析Linux中的fork函数
  14. linux启动和grub修复
  15. 抖音运营攻略大全,新手主播必知干货丨国仁网络
  16. 微信公众平台账号迁移流程、申请函公证及留言功能开通方法
  17. C语言每日一练——第74天:黑与白问题
  18. 计算机专业中职生自我鉴定报告,【中职生计算机自我鉴定】应届计算机毕业生自我鉴定...
  19. 在Unity中利用Mono.Cecil将代码注入到Dll中
  20. 跟美团API对接,以及生成签名,同步数据到数据库

热门文章

  1. 2020软件测试学习自学路线分享,附完整资料,绝对有用哟
  2. AD原理图设计中如何添加NET CLASS和差分线
  3. css字体毛边属性设置
  4. 网络代理【1】什么是网络代理
  5. ubuntu 16.04 + GTX1050安装nvidia驱动
  6. outlook如何撤回邮件?(中英文)
  7. tomcat配置manger账户和host-manager账户的方法详细图解
  8. 微信技术总监:一亿用户背后的架构秘密
  9. 关于android某些手机java.lang.UnsatisfiedLinkError: No implementation found for ......的问题
  10. 2021-07-02软件构造学习中遇到的问题