从树中一个结点到另一个结点之间的分支构成这两个结点之间的路径,路径上的分支数目称作路径长度。树的路径长度是从树根到每个结点的路径长度之和。结点的带权路径长度为结点到树根之间的路径长度与结点上权的乘机,树的带权路径长度为树中所有叶子节点的带权路径长度之和。
从网站建设到定制行业解决方案,为提供网站设计制作、做网站服务体系,各种行业企业客户提供网站建设解决方案,助力业务快速发展。创新互联建站将不断加快创新步伐,提供优质的建站服务。
头文件:
/*****************************************************************************************************
*Copyright: Yue Workstation
*
*FileName: HuffmanTree.h
*
*Function: Huffman树的数据结构定义
*
*Author: Abel Lee
*
*CreateOn: 2012-2-19
*
*Log: 2012-2-19 由Abel Lee创建
*****************************************************************************************************/
#ifndef HUFFMAN_TREE_H
#define HUFFMAN_TREE_H
#include "global.h"
#define NUMBER 4
typedef struct
{
int weight;
int parent, lchild, rchild;
}HTNode, *HuffmanTree;
void PrintHuffmanTree(HuffmanTree ht, int n);
#endif
源文件:
/*****************************************************************************************************
*Copyright:Yue Workstation
*
*FileName: HuffmanTree.c
*
*Function: Huffman树的操作
*
*Author:Abel Lee
*
*CreateOn:2012-2-19
*
*Log:2011-5-3 由Abel Lee创建
*****************************************************************************************************/
#include "../inc/HuffmanTree.h"
//最小数
static int _min(HuffmanTree ht, int i)
{
int j=0;
int temp=0;
for(j = 0; jweight = *w;
p->parent = 0;
p->lchild = 0;
p->rchild = 0;
}
for(; iweight = 0;
p->parent = 0;
p->lchild = 0;
p->rchild = 0;
}
for(i = n; i