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

二叉树定义

二叉树是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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 树形结构 在前面章节中介绍到的数据结构,都为线性结构,比如链表,数组,队列等,都属于线性结构,类似于通过一根线串在...
    ducktobey阅读 1,310评论 0 0
  • 介绍 二叉树的结构 二叉树常考的原因有如下几点1、它可以结合链表、栈、队列和字符串等数据结构出题2、需要熟练掌握图...
    雨住多一横阅读 470评论 0 1
  • 树的基本概念 节点,根节点,父节点,子节点,兄弟节点都是属于树的范涛; 一棵树可以没有任何节点,称为空树; 一棵树...
    coder_feng阅读 1,152评论 0 0
  • 前言 树是数据结构中的重中之重,尤其以各类二叉树为学习的难点。一直以来,对于树的掌握都是模棱两可的状态,现在希望通...
    MrHorse1992阅读 354,320评论 51 536
  • 二叉树的定义#### 二叉树是n(n>=0)个具有相同类型的元素的有限集合,当n=0时称为空二叉树,当n>0时,数...
    kylinxiang阅读 1,486评论 0 2