博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
树的基础概念(二)
阅读量:5073 次
发布时间:2019-06-12

本文共 874 字,大约阅读时间需要 2 分钟。

堆:经过排序的完全二叉树,其中任一非叶子节点的值均不大于(或不小于)其左孩子和右孩子结点的值。

最大堆和最小堆是二叉堆的两种形式。

最大堆:根节点的键值是所有堆结点键值中最大者。

最小堆:根节点的键值是所有堆结点键值中最小者。

最大-最小堆:集结了他俩的优点。是最大层和最小层交替出现的二叉树,即最大层节点的儿子属于最小层,最小层节点的儿子属于最大层。以最大(小)层节点为根节点的子树保有最大(小)堆性质:根节点的键值为该子树结点键值中最大(小)项。

=======================================================

二叉排序树

(1)若左子树不空,则左子树上所有节点的值均小于它的根节点的值;

(2)若右子树不空,则右子树上所有节点的值均大于它的根节点的值;

(3)左、右子树也分别为二叉排序树;

=======================================================

平衡二叉树(AVL树)

 

它是一颗空树 或

它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一颗平衡二叉树

常用算法:红黑树,AVL,Treap。

最小二叉平衡树的节点公式:F(n) = F(n-1)+F(n-2)+1

1是根节点,F(n-1)是左子树的节点数量,F(n-2)是右子树的节点数量

=======================================================

哈夫曼树

它是带权路径长度最小的二叉树。

哈夫曼树的构造:

有n个权值,则构造出哈夫曼树有n个叶子节点。

(1)将1……n看成是n棵树的集合;

(2)集合中选出两个根节点的权值最小的树合并,作为一颗新树的左右子树,且新树的根节点权值为其左右子树节点权值之和;

(3)从集合中删除选取的两棵树,并将新树加入集合

(4)重复2,3步骤,直到集合中只剩一颗树为止

 

转载于:https://www.cnblogs.com/niceforbear/p/4529450.html

你可能感兴趣的文章
LeetCode题解之 two sum 问题
查看>>
CSS position 属性
查看>>
Spring MVC入门
查看>>
rpm包及tar包的安装
查看>>
数据结构与算法之PHP实现队列、栈
查看>>
GPS常识-B版(简)
查看>>
WinForm 使用皮肤,且单击按更换皮肤。
查看>>
管理信息系统 课程设计
查看>>
JuJu团队12月2号工作汇报
查看>>
java的运行机制及初步相关配置(jdk)
查看>>
crontab挂定时任务
查看>>
每天一个Linux命令(06)--rmdir命令
查看>>
别踩白块儿游戏源码Android版
查看>>
apt安装遇到的问题
查看>>
小组项目总结--访问量及下载量
查看>>
有关字体的专业名词解释
查看>>
iptables防火墙相关命令详解
查看>>
图片点击后无虚线框
查看>>
最长公共前缀
查看>>
夺命雷公狗—angularjs—10—angularjs里面的内置函数
查看>>