软考-数据结构

引入头结点可以让所有节点的操作变得一致,否则头结点需要特殊处理.

 

 

 

 

 

广义表:

n个表元素组成的有限序列,是线性表的推广.

除了表头元素,剩余的才是标尾.

 

 

 

 树与二叉树

结点的度:该结点包含孩子的个数.

树的度:所有结点最高的度.

内部结点:除了根结点和叶子结点之外的.

 

 

完全二叉树:最后一层之上的结点都是满的,最后一层的结点是从左到右连续排列的.

 

 

前序,中序,后序的区别在于,访问根结点的顺序.

前序:根结点,左子树,右子树

中序:左子树,根结点,右子树

后序:左子树,右子树,根结点

前序:12457836

中序:42785136

后序:48752631

 

反向构造二叉树

前序+中序,或者中序+后序,都可以把二叉树给还原掉.

 

树转二叉树:

连线法:

把兄弟结点连起来; 对于有多个孩子的,只保留第一个孩子的连线;最后再把这个树展开.

 

查找二叉树(排序二叉树)

左孩子<根; 右孩子>根.

最优二叉树(哈夫曼树)

主要用于哈夫曼编码(是一种编码方式,能够让压缩的编码信息变得更短一些;无损压缩).

树的路径长度:把树中所有一段一段的路径给加起来得到的数值.

权:是叶结点中的数值.

带权路径长度:根结点到该叶结点的距离*该叶结点的权

树的带权路径长度:(树的代价):把所有的带权路径长度累计起来.

哈夫曼树要达到的效果是:让树的带权路径长度最短

 

选出权最小的两个叶结点,然后合成一个小树,然后删除这两个叶结点,重复这个过程得到哈夫曼树.

从下图中可以看出来只使用叶子结点的权,是因为其他结点是构造出来的,一开始并不存在.

 

线索二叉树

把空的左右指针给利用起来,方便遍历

 

平衡二叉树

同样的一个序列,它的排序二叉树有可能有多棵.

越平衡,查询效率越高.

调整:将比较靠中间的位置放在根结点附近.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodingLife99

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值