2020 数据结构 树 (二叉树、哈夫曼树、树-森林-二叉树相互转换)

二叉树

-- 先序遍历、中序遍历、后序遍历(一种递归的思想来遍历)

--两种遍历构建二叉树

三种遍历是递归遍历,要理解递归思想和遍历顺序

 

先序+中序:先序序列最左边是根,找到根,再在中序序列中划分左右子树,依次在先序序列找到左右子树序列,再找到各自的根,依次递归

后序+中序:后序序列最左边是根,找到根,再在中序序列划分左右子树,依次在后序序列找到左右子序列,再找到各自的根,依次递归

 

哈夫曼树

--哈夫曼树构建,注意规则左小右大

--哈夫曼编码,左0右1

 

初始化:建立叶子权重集合

(1)从集合中选择最小的两个权值,合并成新权值

(2)从集合中删除已选的两个权值,加入新权值

(3)重复步骤(1),一直到集合只剩下一个权值

 

树-森林-二叉树相互转换

--转换使用树存储结构的孩子兄弟表示法

孩子兄弟表示法:用于树转二叉树

(1)当前节点的第一个孩子作为左孩子,当前节点的兄弟作为右孩子

(2)一棵树转为二叉树,二叉树的根节点没有右孩子

(3)森林转二叉树,多颗树沿着二叉树根节点的右孩子方向展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值