美文网首页
二叉树上

二叉树上

作者: TomGui | 来源:发表于2019-10-09 22:13 被阅读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)

相关文章

  • 算法面试通关-树&二叉树&二叉搜索树《五》

    TreeBinary TreeBinary Search TreeGraph 二叉搜索树(有序二叉树) 左子树上所...

  • 二叉树上

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

  • 数据结构 经典算法复习

    二叉搜索树, 平衡二叉树(AVL) 红黑树 B树(平衡多路搜索树) B+树(在B树上改造) 二叉搜索树...

  • 二叉查找树之一:二叉查找树

    二叉查找树 二叉查找树(BST)的特性: 1.左子树上所有结点的值均小于或等于它的根结点的值。 2.右子树上所有结...

  • 二叉查找树

    什么是二叉查找树? 二叉查找树又名二叉排序树、二叉搜索树,具有如下性质: 若左子树不为空,则左子树上的所有节点的值...

  • 二叉查找树

    什么是二叉查找树? 二叉查找树又名二叉排序树、二叉搜索树,具有如下性质: 若左子树不为空,则左子树上的所有节点的值...

  • 从零开始学数据结构和算法(七) huffman 树与 AVL 树

    Huffman 树 概念 树的构造 Huffman 源码 AVL 树(平衡二叉树) 概念 平衡因子 二叉树上节点的...

  • 二叉排序树

    1、二叉排序树定义 二叉排序树也叫二叉搜索树、二叉查找树。二叉排序树树是一颗它的左子树上的节点都小于根节点,右子树...

  • 数据结构 -- 树

    二叉搜索树 二叉搜索树,也称有序二叉树、排序二叉树,指的是一颗空树且具有下列特征的树: 左子树上所有节点的值均小于...

  • 二叉树及用Java实现二叉树

    二叉树的概念此处就不赘述了。 二叉搜索树,又名二叉查找树,二叉排序树,若它的左子树不空,则左子树上所有结点的值均小...

网友评论

      本文标题:二叉树上

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