计算机二级公共基础知识完全二叉树

论坛 期权论坛 期权     
佚名君子   2018-4-26 13:43   5673   2

分享到 :
0 人收藏

2 个回复

正序浏览
3#
distanceliu  1级新秀 | 2018-4-30 02:30:55 发帖IP地址来自
  首先得知道什么是完全二叉树,完全二叉树是除最下面一层外,每一层的结点数均达到最大值,在最下面一层上只缺少右边的若干结点。(注意和满二叉树的区分)
  下图就是一个完全二叉树。


  根据二叉树的性质,在任意一个二叉树中,度为0的结点(叶子结点)总是比度为2的结点多一个。如图中,6、7、8、9、10为叶子结点,共5个;度为2的结点有1、2、3、4,共4个。


  根据完全二叉树的特征可以推断出,在完全二叉树中,最多就有一个度为1的结点。此外,如果完全二叉树共有偶数个结点,则其中有一个度为1的结点;如果完全二叉树共有奇数个结点,则它只有度为2和度为0的结点,没有度为1的结点。


  所以,如果完全二叉树的总结点数为偶数,则:度为2的结点+度为1的结点=度为0的结点,如果完全二叉树的总结点数为奇数,则:度为2的结点+1=度为0的结点


  上面的都是推导过程,以下是结论。推导过程可以理解一下,结论最好记住。
  因此对于完全二叉树而言,如果他的结点个数为偶数N,则该二叉树中,叶子结点个数=非叶子结点个数=N/2。
  如果他的结点个数为奇数M,则该二叉树中,叶子结点个数=非叶子结点个数+1=(M+1)/2。


  本题中,二叉树共有700个结点,是偶数,所以叶子结点数=700/2=350。
2#
无怨深渊  4级常客 | 2018-4-30 02:30:54 发帖IP地址来自
只有最下面的两层结点度能够小于2,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树
[/url][url=https://gss0.baidu.com/-4o3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/54fbb2fb43166d224399011e4d2309f79152d249.jpg]

完全二叉树定义:
若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。
完全二叉树是由聽满二叉树而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。
一棵二叉树至多只有最下面的一层上的结点的度数可以小于2,并且最下层上的结点都集中在该层最左边的若干位置上,则此二叉树成为完全二叉树。
完全二叉树特点:
叶子结点只可能在最大的两层上出现,对任意结点,若其右分支下的子孙最大层次为L,则其左分支下的子孙的最大层次必为L 或 L+1;
出于简便起见,完全二叉树通常采用 数组而不是 链表存储,其 存储结构如下:
var tree:array[1..n]of longint;{n:integer;n>=1}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP