根据输入的n个带权结点,构造出哈夫曼树,并且把构造结果输出到屏幕

来源:百度知道 编辑:UC知道 时间:2024/09/22 11:08:06
真心请教,急求!谢谢了~.~

#include <stdio.h>
#include <malloc.h>
#include <string.h>

#define MAX 0xFFFFFFFF

typedef struct
{
unsigned int weight;
unsigned int parent,lchild,rchild;
}HTNode,*HuffmanTree;

typedef char** HuffmanCode;

int min(HuffmanTree t,int i)
{
int j,flag;
unsigned int k = MAX;
for(j=1;j<=i;j++)
if(t[j].parent==0&&t[j].weight<k)
{
k=t[j].weight;
flag = j;
}
t[flag].parent = 1;
return flag;
}

void select(HuffmanTree h,int i,int &s1,int &s2)
{
int tmp;
s1 = min(h,i);
s2 = min(h,i);
if(s1 > s2)
{
tmp = s1;
s1 = s2;
s2 = tmp;
}
}

void HuffmanCoding(HuffmanTree &HT,HuffmanCode &HC,int *w,int n,int &wpl)
{
int m,i,s1,s2,start

根据输入的n个带权结点,构造出哈夫曼树,并且把构造结果输出到屏幕 数据结构:由3个结点可以构造出多少种不同的二叉树? 在huffman树的时候,说用方框表示外部结点,圆圈表示内部结点,构造huffman树。 请教一个数据结构的问题:在具有n个结点的完全2叉树中,结点i(2i>n)的左孩子结点是什么? 一棵树共有n个结点的树,其中所有分支结点的度为k,则该树中叶子结点的个数为? 某个2叉树,有n个度为2的结点,那么,树的叶子结点有多少个? 离散数学问题:具有n个结点的数必有度数之和等于2n-2 n个结点(大小都不相同)的二叉排序树共有几种排法? 有n个结点的二叉树深度为 lbn+1 中 lbn 是什么意思? N个结点可以构成多少个不同的二叉树?