二叉树,完全二叉树,满二叉树,完美二叉树(有图干货)

博客主要介绍了多种二叉树类型,包括普通二叉树、二叉搜索树、满二叉树、完全二叉树、完美二叉树和哈夫曼树。阐述了各类型二叉树的定义,如满二叉树节点度为0或2,完美二叉树叶子节点在最后一层等,还提及哈夫曼树是带权路径长度最小的二叉树。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 二叉树:树中每个节点至多有两个子节点

【最普通的二叉】

二叉搜索树:对于树中任何节点,如果其左子节点不为空,那么该节点的value值永远 >= 其左子节点;如果其右子节点不为空,那么该节点的value值永远 <= 其右子节点

【回顾一下中序遍历】

满二叉树(Full Binary Tree):树中除了叶子节点,每个节点都有两个子节点

美国NIST给出的定义为:

A binary tree in which each node has exactly zero or two children.

In other words, every node is either a leaf or has two children.

For efficiency, any Huffman coding is a full binary tree.

满二叉树的任意节点,要么度为0,要么度为2.换个说法即要么为叶子结点,要么同时具有左右孩子。霍夫曼树是符合这种定义的,满足国际上定义的满二叉树,但不满足国内的定义

国内定义:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。

也就是说,如果一个二叉树的层数为K,且结点总数是(2^k) -1 ,则它就是满二叉树。

完全二叉树(Complete Binary Tree):在满足满二叉树的性质后,最后一层的叶子节点均需在最左边

完美二叉树(Perfect Binary Tree):满足完全二叉树性质,树的叶子节点均在最后一层(也就是形成了一个完美的三角形)

任何一个完美二叉树 既属于满二叉树,也属于完全二叉树。因此它拥有满二叉树和完全二叉树的所有性质

完美二叉树从外观上看他是一个等边三角形。他的每一层都被填充满。

【自行脑补】

满二叉树、完全二叉树、完美二叉树的定义是越来越严格的

哈夫曼树

哈夫曼树(Huffman Tree)是在叶子结点权重确定的情况下,带权路径长度最小的二叉树,也被称为最优二叉树

建议查看以下链接,生动易懂

百度安全验证

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值