二叉树基础上

作者: TomGui | 来源:发表于2020-05-27 22:59 被阅读0次

  • 节点的高度=节点到叶子节点的最大路径(边数)
  • 节点的深度=根节点到这个节点所经历的边的个数
  • 节点的层数=节点的深度+1
  • 树的高度=根节点的高度

二叉树

二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子节点和右子节点。

满二叉树

叶子节点全都在最底层,除了叶子节点之外,每个节点都有左右两个子节点,这种二叉树就叫作满二叉树。

完全二叉树

叶子节点都在最底下两层,最后一层的叶子节点都靠左排列,并且除了最后一层,其他层的节点个数都要达到最大,这种二叉树叫作完全二叉树。

如何表达(或者存储)一颗二叉树?

  • 一种是基于指针或者引用的二叉链式存储法
  • 一种是基于数组的顺序存储法

二叉树的遍历

  • 前序遍历是指,对于树中的任意节点来说,先打印这个节点,然后再再打印它的左子树,最后打印它的右子树。
  • 中序遍历是指,对于树中的任意节点来说,先打印它的左子树,然后再打印它本身,最后打印它的右子树。
  • 后序遍历是指,对于树中的任意节点来说,先打印它的左子树,然后再打印它的右子树,最后打印这个节点本身。

伪代码

前序遍历的递推公式:
preOrder(r) = print r->preOrder(r->left)->preOrder(r->right)

中序遍历的递推公式:
inOrder(r) = inOrder(r->left)->print r->inOrder(r->right)

后序遍历的递推公式:
postOrder(r) = postOrder(r->left)->postOrder(r->right)->print r

代码

void preOrder(Node* root) {
  if (root == null) return;
  print root // 此处为伪代码,表示打印 root 节点
  preOrder(root->left);
  preOrder(root->right);
}

void inOrder(Node* root) {
  if (root == null) return;
  inOrder(root->left);
  print root // 此处为伪代码,表示打印 root 节点
  inOrder(root->right);
}

void postOrder(Node* root) {
  if (root == null) return;
  postOrder(root->left);
  postOrder(root->right);
  print root // 此处为伪代码,表示打印 root 节点
}

时间复杂度:O(n)

相关文章

  • Avl平衡树--C语言实现

    Avl 平衡树 实现记录 Avl平衡二叉树和搜索二叉树基本实现原理相同,在搜索二叉树的基础上添加树平衡的操作--单...

  • 手写 avl tree

    为什么需要 avl tree avl tree 又称 平衡二叉树。主要在排序二叉树的基础上进行的一个优化。避免排序...

  • 二叉树基础上

    1. 树(Tree) 首先我们来看几个树的例子。 在一个树结构里,每个元素我们称之为节点,从上到下相邻节点连线的关...

  • 二叉树基础上

    树 节点的高度=节点到叶子节点的最大路径(边数) 节点的深度=根节点到这个节点所经历的边的个数 节点的层数=节点的...

  • 平衡二叉树(AVL)

    定义 平衡二叉树是建立在二叉平衡树基础上,目的使得各个节点的深度尽可能小。平衡二叉树是一颗二叉树,或者为空,或者满...

  • 数据结构与算法之二叉树(二)赫夫曼编码原理及实现

    引言 上篇博客学习了二叉树的基本操作原理,今天我们在此基础上学习二叉树的典型应用:赫夫曼编码树,赫夫曼编码(Huf...

  • 二叉树 LeetCode 刷题小结(六)

    在上节的基础上,本节我们将继续汇总一些 LeetCode 有关二叉树的题。 接着上节,我们继续汇总二叉树相关的例题...

  • 二叉树 LeetCode 刷题小结(七)

    在上节的基础上,本节我们将继续汇总一些 LeetCode 有关二叉树的题。 接着上节,我们继续汇总二叉树相关的例题...

  • 线索二叉树

    线索二叉树:在二叉树的基础上,为节点添加LTag和RTag标记,用于指示左指针和右指针指向的是左右孩子,或者是前驱...

  • [回忆梳理] 2.二叉树的性质

    二叉树的性质 二叉树的性质可以直接记忆,在理解的基础上记忆更好,如果暂时不能理解,就先记忆,便于以后直接使用 ti...

网友评论

    本文标题:二叉树基础上

    本文链接:https://www.haomeiwen.com/subject/addnahtx.html