ITPub博客

首页 > 架构设计 > > 数据结构-树(二叉树)

数据结构-树(二叉树)

作者:浪花小雨滴 时间:2020-05-20 12:01:14 0 删除 编辑

二叉树的性质:

  1. 非空二叉树的第i层,最多有2^(i-1)个节点(i-1)。
  2. 在高度为h的二叉树上最多有2^h - 1个结点(h>=1)。
  3. 对于任何一颗非空二叉树,如果叶子节点个数为n0,度为2的节点个数为n2,则有:n0=n2+1

真二叉树:

所有节点的度都要么为0,要么为2

满二叉树:

所有节点的度都要么为0,要么为2。且所有的叶子节点都在最后一层。

完全二叉树:

叶子节点只会出现最后2层,且最后一层的叶子结点都靠左对齐。

完全二叉树的性质:

  1. 度为1的节点只有左子树。
  2. 度为1的节点要么是1个,要么是0个。
  3. 同样节点数量的二叉树,完全二叉树的高度最小。
  4. 假设完全二叉树的高度为h(h>=1),那么至少有2^(h-1)个节点 ,最多有2^h-1个节点,假设总节点数目为n:
  • (1).2^(h-1)<=n<2^h
  • (2).h-1<=log2n<h
  • (3).h = math.floor(log2n)+1

一个有n个节点的完整二叉树(n > 0), 从上到下,从左到右对节点从0开始编号, 对任意第i个节点:

  • 如果i = 0,它是根节点。
  • 如果i > 0,它的父节点编号为math.floor((i- 1)/2)。
  • 如果2i + 1 <= n - 1,它的左子节点编号为2i + 1。
  • 如果2i + 1 > n - 1,它无左子点。
  • 如果2i + 2 <= n - 1,他的右子节点编号为2i + 2。
  • 如果2i + 2 > n - 1,它无右子节点。

二叉树遍历

  • 即遍历过程中,根的位置
  • 前序遍历:根->左->右
  • 中序遍历:左->根->右
  • 后序遍历:左->右->根
  • 层序遍历:按层遍历,由上到下

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3127675/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-05-16

  • 博文量
    4259
  • 访问量
    39984