全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

完全二叉树和优异二叉树的区别是什么?

发布时间:2023-10-11 10:29:37
发布人:xqq

一、完全二叉树和优异二叉树的区别

完全二叉树

完全二叉树是指除了最后一层外,其他每一层都必须填满节点,并且最后一层的节点都必须靠左排列的二叉树。也就是说,如果一个完全二叉树的深度为h,则除了第h层外,其它各层节点数都达到最大值,第h层所有节点都连续集中在最左边。

优异二叉树

优异二叉树,也叫哈夫曼树,是指带权路径长度最小的二叉树。在哈夫曼树中,带权路径长度等于树中所有叶子节点的权值乘以它们到根节点的路径长度之和。在构造哈夫曼树的过程中,节点的权值越大,它距离根节点就越近。

区别

完全二叉树的形态比较固定,每一层的节点数是确定的;而优异二叉树的形态可以根据节点权值的不同而有所不同,节点数也没有固定的限制。完全二叉树的构造不需要根据节点权值来确定,而是按照深度优先的原则,一层一层从左到右地填充节点。优异二叉树的构造则是基于贪心算法,按照节点权值从小到大的顺序来构造。完全二叉树中,任何一个节点的左右子节点,如果存在,一定是连续的;而优异二叉树中,同一个节点的左右子节点可能会不连续。

总的来说,完全二叉树更多地用于数据结构和算法中的一些具体实现,比如堆排序、优先队列等;而优异二叉树则更多地用于信息编码和压缩等领域,比如哈夫曼编码。

延伸阅读:

二、树的概念以及相关概念

树是一种非线性数据结构,由(n>0)个节点组成的一个具有层次关系的集合。

根节点:没有父节点的节点

叶子结点:没有子节点的节点,即度为0的节点

节点的度:一个节点含有的子节点的个数称为该节点的度

树的度:一个树中最大的节点的度为该树的度

相关公式:

节点数=分支数+1

节点数=度为0的节点+度为1的节点+度为2的节点

分支数=度为1的节点+2*度为2的节点

#it技术干货

相关文章

做一个App需要哪些步骤?

做一个App需要哪些步骤?

2023-10-11
Wolt的技术堆栈是什么?

Wolt的技术堆栈是什么?

2023-10-11
数据结构的意义是什么?

数据结构的意义是什么?

2023-10-11
顺序存储为什么有比较多外部碎片?

顺序存储为什么有比较多外部碎片?

2023-10-11

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取