数据结构 树、森林、二叉树、哈夫曼树

7.7、二叉树、树、森林

定义树可以使用,孩子兄弟表示法,做指针表示孩子,右指针表示树

typedef struct CSNode{
ElemType data;
struct CSNode *firstchilde,*nextsibling;//第一个为孩子,第二个为兄弟
}CSNOde,*CSTree;

二叉树和树的转换

二叉树和森林的转换

先根遍历

树的先根遍历和对应孩子兄弟二叉树的先序遍历是相同的

图035:

先根遍历:A B D E C F G H I

对应二叉树的先序遍历:A B D E C F G H I

后根遍历

树的后根遍历和对应孩子兄弟二叉树的中序遍历是相同的

图035:

后根遍历:D B E F C H G I A

对应二叉树的中序遍历:D B E F C H G I A

层次遍历

图035:

层次遍历:A B E C G I D F H

先根遍历和后根遍历:称为深度优先遍历

层次遍历:称为广度优先遍历

森林 孩子兄弟二叉树
先根遍历 先序遍历 先序遍历
后根遍历 中序遍历 中序遍历

森林的先序遍历:每颗树的先根遍历 组合起来(或者转化为孩子兄弟二叉树的先序遍历)

森林的中序遍历:每颗树的后根遍历 组合起来(或者转化外孩子兄弟二叉树的中序遍历)

7.10、哈夫曼树

结点的权:有某种现实含义的数值(如:表示结点的重要性等)

结点的带权路径长度:从树的根到该结点的路径长度(经过的边数)与该结点的权值的乘积

树的带权路径长度:树中所有叶结点的带权路径长度之和(WPL,Weighted Path Length)

在含有n个带权叶结点的二叉树中,其中带权路径长度(WPL)最小的二叉树称为哈夫曼树,也称为最优二叉树

哈夫曼编码例题:

posted @   水三丫  阅读(118)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示