软设之特殊二叉树

查找二叉树/二叉排序树

左孩子小于根

右孩子大于根

特点:

1.二叉查找树的中序遍历序列为从小到大排列的序列

2.值最小的结点无左子树,值最大的结点无右子树

3.每一层从左到右进行遍历的序列为从小到大排列的序列。

插入结点:从顶部开始找,找到合适位置放置即可。

1.若该键值结点已存在,则不再插入

2.若查找二叉树为空树,则以新结点为查找二叉树

3.要插入结点键值与插入后父结点键值比较,就能确定新结点是父结点的左子结点还是右子结点。

删除结点

1.若待删除结点是叶子结点,则直接删除

2.若删除结点只有一个子结点,则将这个子结点与待删除结点的父结点直接连接

3.若待删除的结点p有两个子结点,则在其左子树上,用中序遍历寻找关键值最大的结点s,用结点s的值代替结点p的值,然后删除结点s。

最优二叉树(哈夫漫树)

基本概念:

叶子结点的路径长度:结点到根的分支线数量

树的路径长度:所有叶子结点路径长度之和

权:叶子结点的数值

叶子结点的带权路径长度:权重*路径

树的带权路径长度:所有叶子结点带权路径之和。

高权重叶子结点离根结点距离越近,整体的带权路径长度就越小

优化叶子结点后得到的最小带权路径长度的树就叫最优二叉树,也叫哈夫曼树

如何构造哈夫曼树

假设有一组权值5,29,7,8,14,23,3,11

找出两个最小权值,构造新结点

3和5是最小的,选出来,3+5=8,将8作为新结点加入集合,把3和5去掉,然后再从新集合里选择最小的两个,最小两个构成新的和,以此类推

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值