发布网友 发布时间:2022-05-30 20:59
共1个回答
热心网友 时间:2023-11-18 01:00
树和二叉树: 二叉树是树的一种,还可以有三叉树、四叉树、……,以及混合叉树。 不过一般只讨论二叉树,这是最典型、最有用的数据结构。 Huffman树是一类带权路径长度最短的二叉树,在哈夫曼树中,权值越大的结点离根结点越近。 假设有n个权值,则构造出的哈夫曼树有n个叶子结点。 n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为: (1) 将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点); (2) 在森林中选出两个根结点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和; (3)从森林中删除选取的两棵树,并将新树加入森林; (4)重复(2)、(3)步,直到森林中只剩一棵树为止,该树即为所求得的哈夫曼树。 Huffman树编码:以根为出发点,依次向下走到各个叶子结点为止。往下走时,选择走哈夫曼树的左分支生成0,走右分支则生成代码1,根结点到叶子结点路径上的0、1序列即为相应字符的编码。 这样讲可能有点抽象,你可以找本书,结合书上的图来看会更清楚一点。