数据结构(十九)二叉树的定义和性质

  一、二叉树的定义

  1.二叉树(Binary Tree)是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两颗互不相交的、分别称为根结点的左子树和右子树的二叉树组成。

  2.二叉树的特点:

  • 每个结点最多有两颗子树,所以二叉树中不存在度大于2的结点。
  • 左子树和右子树是有顺序的,次序不能任意颠倒。
  • 即使树中某结点只有一颗子树,也要区分它是左子树还是右子树。

  3.二叉树具有五种基本形态:

  • 空二叉树
  • 只有一个根结点
  • 根结点只有左子树
  • 根结点只有右子树
  • 根结点既有左子树又有右子树

  4.特殊二叉树

  (1)斜树:所有的结点都只有左子树的二叉树叫左斜树,所有结点都是只有右子树的二叉树叫右斜树。

  (2)满二叉树:所有分支结点都存在左子树和右子树,并且所有叶子都在同一层上。

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

  二、二叉树的性质(注意,这里的i都是从0开始的

  1.在二叉树的第i层上至多有2^i个结点(i从0开始)。

  2.深度为k的二叉树至多有2^k -1个结点(k从1开始)。

  3.对任何一颗二叉树T,如果其终端节点树为n0,度为2的结点数为n2,则n0 = n2 +1(设度为1的结点数为n1,则结点总数为n=n0+n1+n2;又由于除了根结点外,每一个结点均对应一个进入它的分支,所以分支总数=n-1,又由于度为1的结点对应着1个从它引出的分支,度为2的结点对应着2个从它引出的分支,所以分支总数=n1+2*n2,即n-1=n1+2*n2)。

  4.具有n个结点的完全二叉树的深度为【log2 n】+1(【x】表示不大于x的最大整数)(深度为k的满二叉树的结点数n一定是2^k -1)

  5.如果对一颗有n个结点的完全二叉树(其深度为【log2 n】+1)的结点按层序编号(从第1层到第【log2 n】+1层,每层从左到右),对任一结点i(0<=i<=n-1)有:

  • 如果i=0,则结点i是二叉树的根,无双亲;如果i>1,则其双亲是结点【(i-1)/2】
  • 如果2i+1>n,则结点i无左孩子;否则其左孩子是结点2i+1
  • 如果2i+2>n,则结点i无右孩子;否则其右孩子是结点2i+2
posted @ 2018-06-21 15:51  BigJunOba  阅读(622)  评论(0编辑  收藏  举报