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

二叉树

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

--两种遍历构建二叉树

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

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

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

哈夫曼树

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

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

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

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

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

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

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

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

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

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

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

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

猜你喜欢

转载自blog.csdn.net/m0_38010621/article/details/107713247