千锋教育-做有情怀、有良心、有品质的职业教育机构
千锋学习站|随时随地免费学
扫一扫进入千锋手机站
400-811-9990全国咨询热线
二叉树是每个节点非常多有两个儿子的树。
正规二叉树是每个节点都有两个或没有儿子的二叉树。这意味着,如果一个节点有左儿子,那么它必须有右儿子,反之亦然。
完全二叉树是一棵二叉树,其中除了可能深度为h或h-1的最后一层外,其余各层的节点数都达到最大个数,即第i层非常多有2^(i-1)个节点(i≥1)。换句话说,如果二叉树中除去最后一层节点为满二叉树,且最后一层的结点依次从左到右分布,则此二叉树被称为完全二叉树。
举个例子,下面这棵树是一棵正规二叉树:
1
/\
23
但是,它不是一棵完全二叉树,因为第二层的节点数不是最大的。
延伸阅读:
二、完全二叉树与满二叉树的区别是什么
含义不同:
完全二叉树是由满二叉树而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。
表示不同:
对于满二叉树,除最后一层无任何子节点外,每一层上的所有结点都有两个子结点二叉树。而完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。
对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。
判断一棵树是否是完全二叉树的思路
1>如果树为空,则直接返回错
2>如果树不为空:层序遍历二叉树
2.1>如果一个结点左右孩子都不为空,则pop该节点,将其左右孩子入队列;
2.1>如果遇到一个结点,左孩子为空,右孩子不为空,则该树一定不是完全二叉树;
2.2>如果遇到一个结点,左孩子不为空,右孩子为空;或者左右孩子都为空,且则该节点之后的队列中的结点都为叶子节点,该树才是完全二叉树,否则就不是完全二叉树;
上一篇
下一篇
一、软件测试和硬件测试的区别1、测试工具不同软件测试:相对来说,都是使用软件进行,比如抓包工具Fiddler、压力测试工具Jmeter、接口测试工具...详情>>
一、做一个App的步骤1、策划:开发策划是app开发的名列前茅步,它是确定最终的app开发方案和规划的必要步骤,开发策划的目的是把app的构思从理...详情>>
一、c语言链表初始化是什么意思C语言中链表是一种常用的数据结构,用于存储数据元素并实现各种算法和操作。链表通常由若干个节点(Node)组成,...详情>>
一、sql数据库用B树索引,而不是用其他树型数据结构的原因SQL数据库中使用B树索引的主要原因是其高效的查询和插入性能,以及对于高并发的支持。...详情>>
一、vector容器原理vector容器分配的是一块连续的内存空间,每次容器的增长,并不是在原有连续的内存空间后再进行简单的叠加,而是重新申请一块...详情>>
macbook用什么文档软件
软件帮助文档怎么做
软件功能设计文档怎么做
软件开发进度表怎么做
ios软件开发用什么工具
las文件用什么软件
trello怎么下载
titaokr好用吗
trello干什么的
visionokr怎么样
2023-12-06
2023-12-09
2023-08-07
千锋教育运营主体:北京千锋互联科技有限公司,属具备计算机技术培训资质的教育培训机构。