【我是一棵树】二叉树详解(一)

二叉树定义

二叉树是n(n>=0)个节点的有限集合。该集合或者未空集(称为空二叉树),或者有一个根节点和两棵互不相交的,分别称为根节点的左子树和右子树的二叉树组成。

二叉树特点

  1. 每个节点最多有两棵子树,所以二叉树中不存在度大于2的节点。
  2. 左、右子树是有顺序的,次序不能颠倒。
  3. 即使书中某节点只有一棵子树,也要区分它是左子树还是右子树。

完全二叉树

对一棵具有n个节点的二叉树按程序编号,如果编号为i(1<=i<=n)的节点与同样深度的满二叉树总编号为i的节点在二叉树中位置完全相同,则这可二叉树称为完全二叉树。

完全二叉树特点

  1. 叶子节点只能出现在最下两层
  2. 最下层的叶子一定集中在左部连续位置
  3. 倒数二层若有叶子节点,一定都在右部连续位置
  4. 如果节点度为1,则该节点只有左孩子,即不存在只有右子树的情况
  5. 同样节点的二叉树,完全二叉树深度最小

二叉树的性质

  1. 在二叉树的第层上之多有2^(i-1)个节点(i>=1)
  2. 深度为k的二叉树最多有2^k-1个节点(k>=1)
  3. 任何一棵二叉树T,如果其终端节点数为n0,度为2的节点数为n2,则n0=n2+1
  4. 具有n个节点的完全二叉树的深度为【logn】+1(【x】标识不大于x的最大整数,即向下取整)
  5. 如果对一棵有n个节点的完全二叉树(其深度为【logn】+1)的节点按程序编号,对任一节点i(1<=i<=n)有:
  • 如i=1,则节点i是二叉树的根,无双亲,如果i>1,则双亲是【i/2】
  • 如2i>n,则节点i无左孩子(节点i为叶子节点),否则其做孩子是2i
  • 如果2i+1>n,则节点i无有孩子,否则有孩子是2i+1
发布了83 篇原创文章 · 获赞 58 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/qixinbruce/article/details/104056939
今日推荐