二叉树
-- 先序遍历、中序遍历、后序遍历(一种递归的思想来遍历)
--两种遍历构建二叉树
三种遍历是递归遍历,要理解递归思想和遍历顺序
先序+中序:先序序列最左边是根,找到根,再在中序序列中划分左右子树,依次在先序序列找到左右子树序列,再找到各自的根,依次递归
后序+中序:后序序列最左边是根,找到根,再在中序序列划分左右子树,依次在后序序列找到左右子序列,再找到各自的根,依次递归
哈夫曼树
--哈夫曼树构建,注意规则左小右大
--哈夫曼编码,左0右1
初始化:建立叶子权重集合
(1)从集合中选择最小的两个权值,合并成新权值
(2)从集合中删除已选的两个权值,加入新权值
(3)重复步骤(1),一直到集合只剩下一个权值
树-森林-二叉树相互转换
--转换使用树存储结构的孩子兄弟表示法
孩子兄弟表示法:用于树转二叉树
(1)当前节点的第一个孩子作为左孩子,当前节点的兄弟作为右孩子
(2)一棵树转为二叉树,二叉树的根节点没有右孩子
(3)森林转二叉树,多颗树沿着二叉树根节点的右孩子方向展开