千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:太原千锋IT培训  >  技术干货  >  正规二叉树和完全二叉树有什么区别?

正规二叉树和完全二叉树有什么区别?

来源:千锋教育
发布人:xqq
时间: 2023-10-14 14:40:51

一、正规二叉树和完全二叉树的区别

二叉树是每个节点非常多有两个儿子的树。

正规二叉树是每个节点都有两个或没有儿子的二叉树。这意味着,如果一个节点有左儿子,那么它必须有右儿子,反之亦然。

完全二叉树是一棵二叉树,其中除了可能深度为 h 或 h-1 的最后一层外,其余各层的节点数都达到最大个数,即第 i 层非常多有 2^(i-1) 个节点(i≥1)。换句话说,如果二叉树中除去最后一层节点为满二叉树,且最后一层的结点依次从左到右分布,则此二叉树被称为完全二叉树。

举个例子,下面这棵树是一棵正规二叉树:

  1

 / \

2   3

但是,它不是一棵完全二叉树,因为第二层的节点数不是最大的。

延伸阅读:

二、完全二叉树与满二叉树的区别是什么

含义不同:

完全二叉树是由满二叉树而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。

表示不同:

对于满二叉树,除最后一层无任何子节点外,每一层上的所有结点都有两个子结点二叉树。而完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。

对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。

判断一棵树是否是完全二叉树的思路

1>如果树为空,则直接返回错

2>如果树不为空:层序遍历二叉树

2.1>如果一个结点左右孩子都不为空,则pop该节点,将其左右孩子入队列;

2.1>如果遇到一个结点,左孩子为空,右孩子不为空,则该树一定不是完全二叉树;

2.2>如果遇到一个结点,左孩子不为空,右孩子为空;或者左右孩子都为空,且则该节点之后的队列中的结点都为叶子节点,该树才是完全二叉树,否则就不是完全二叉树;

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

OD、OC、TD是什么意思?

2023-10-14

Python的a//b和int(a/b)的区别?

2023-10-14

SSR、SSG、ISR、DPR都在做什么?

2023-10-14

最新文章NEW

在线文档哪些好用?

2023-10-14

算法和数据结构什么关系?

2023-10-14

使用 open addressing 的 Hash 表载荷过高为什么会降低 CPU 的缓存命中率?

2023-10-14

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>