完全二叉树的基本理解(无代码版)

完全二叉树

概念

百度百科:

一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i(1≤i≤n)的结点与满二叉树中编号为i的结点在二叉树中的位置相同,则这棵二叉树称为完全二叉树。

下面我将用比较容易理解的文字来给大家阐述完全二叉树,并能做一些计算机二级考试或者数据结构的选择题。此篇博客暂不包含代码,后续补充。

二叉树的特点

  • 非线性数据结构
  • 数据元素(结点)按分支关系组织起来的结构
  • 每个结点最多有两个子树的有序树
  • 左子树和右子树是有顺序的,次序不能颠倒
  • 每个结点的度最多为2

度:结点的分支数

(简单了解即可)~

判断是否为完全二叉树

所谓的完全二叉树,是二叉树的一种,每个结点最多有两个孩子结点,这里我们统称左孩子结点和右孩子结点。

和一般二叉树不同的是,完全二叉树必须从上至下逐排摆满,每个结点必须先有左孩子结点再有右孩子结点。如下图就是一个一般二叉树的例子:

2663158-20211208153824100-1360410384.png

由图可知,C结点没有左孩子结点,但却有右孩子结点,所以不满足完全二叉树的定义。

简而言之,画完全二叉树的时候必须一层一层的画满,第一层画一个,第二层画两个,第三层画四个······当然最后一层可以不画满,但倒数第二层及以前的层一定是满足1,2,4,8······的等比数量关系。并且每一层先画左孩子结点再画右孩子结点。

如下图所示就是一棵完全二叉树。

2663158-20211208153807270-1698602023.jpg

完全二叉树的特点

  • 叶子结点只可能在倒数第一层和倒数第二层出现
  • 对任意一结点,如果其右子树的最大层次为L,则其左子树的最大层次为L或L+1(子树必须向左对齐)
  • 度为1的结点只有0或1个
  • 第n层上至多含有2n-1个结点
  • 高度为k的二叉树,最多有2k-1个结点

叶子结点:没有左右孩子的结点

树的高度:树的层数

1+2+3+4+······+k 利用高中学的等比数列公式可得2k-1

完全二叉树的练习题

  1. 一棵含有200个结点的完全二叉树,它的非叶结点有【 】个。

    答案:100

    方法一:

    ①因为27-1<200<28-1,根据完全二叉树的定义,这棵完全二叉树高度是八层

    ②前七层全部排满,总结点数是27-1=127个,第八层还剩200-127=73个叶子结点从左往右依次排列

    ③第八层每两个结点就会成为上一层对应结点的左右孩子结点,所以第八层的前72个结点会成为第七层的前36个结点的左右孩子结点

    ④第八层的第73个结点会成为第七层的第37个结点的左孩子结点

    ⑤在未排第八层之前,第七层原本有27-1=64个叶子结点,排完第八层后还剩64-37=27个叶子结点

    ⑥第七层有27个叶子结点,第八层有73个叶子结点,加起来一共27+73=100个叶子结点。

    ⑦非叶子结点数量=总结点数-叶子结点的数量=200-100=100个

    方法二:

    ①由完全二叉树的性质可知,度为1的结点只有0或1个,因为第八层有73个叶子结点,是奇数,所以该完全二叉树度为1的结点有1个

    ②所以此处y的值为1,因为sum=200,sum=2x+y-1,可以得出x=100,即叶子结点的数量为100

    ③非叶子结点数量=总结点数-叶子结点的数量=200-100=100个

    x:度为0(叶子结点)结点的数量

    y:度为1结点的数量

    z:度为2结点的数量

    sum:总结点数

    sum=x+y+z

    x=z+1(总边数=度为2的结点个数*2+度为1的结点个数=总结点数-1,即2z+y=x+y+z-1,化简即可)

    sum=2x+y-1

    1. 一棵完全二叉树总共有360个结点,则在该二叉树中度为1的结点个数为:

      A. 0 B. 1 C. 180 D. 181

      【答案】B

      【思路】首先这个题说了,这是一棵完全二叉树,根据完全二叉树的性质,度为1的结点只有0个或1个,直接排除C和D。因为28-1<360<29-1,所以这棵完全二叉树有九层,观察最后一层的结点个数即可,奇数的话有1个度为1的结点,偶数的话没有度为1的结点。360-(28-1)=105,为奇数,所以则在该二叉树中度为1的结点个数为1,选B。

总结

在更新Java学习的道路上偶尔会穿插一些小问题,记录自己复习到的每一个知识点,会更加记得牢!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,922评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,591评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,546评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,467评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,553评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,580评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,588评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,334评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,780评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,092评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,270评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,925评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,573评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,194评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,437评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,154评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容