搜索
首页 文化/艺术 历史话题

哈夫曼树的建立

数据结构课程设计题目 - -~哈夫曼树的建立任务:建立最优二叉树函数要求:可以建立函数输入二叉树,并输出其哈夫曼树

全部回答

2018-05-21

45 0

    给你个大概的代码,把显示跟调用那里改改#include #include #include#include typedef struct { unsigned int weight; unsigned int parent,lchild,rchild,ch; }HTNode,*HuffmanTree; //动态分配数组存储哈夫曼树 typedef char *HuffmanCode; //动态分配数组存储哈夫曼编码表 int m,s1,s2; HuffmanTree HT;void Select(int n){ //选择两个权值最小的结点int i,j; for(i=1;iHT[i]。
    weight)&&(!HT[i]。parent)&&(s2!=i)){ s1=i; } } for(j=1;jHT[j]。
  weight)&&(!HT[j]。parent)&&(s1!=j)){ s2=j; } } } void HuffmanCoding(HuffmanCode HC[], int *w, int n) { // w存放n个字符的权值(均>0),构造哈夫曼树HT, // 并求出n个字符的哈夫曼编码HC int i, j; char *cd; int p; int cdlen;int start;if (n0;r--){ cout">a; while(a=='0'||a=='1'){ if(a=='0')i=HT[i]。
    lchild; else if(a=='1') i=HT[i]。rchild; if(HT[i]。
    lchild==0){ cout>a; }}void main() { HuffmanTree HT;HuffmanCode *HC;int *w,n,i,j;char b,c;puts("输入结点数:"); scanf("%d",&n); HC = (HuffmanCode *)malloc(n*sizeof(HuffmanCode)); w = (int *)malloc(n*sizeof(int)); printf("输入%d个结点的权值 ",n); for(i=0;i>b;j=(int)(b-64);while(j){ cout>b; j=(int)(b-64);}coutsystem("pause"); }。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

文化/艺术
历史话题
地理
器乐/声乐
书画美术
民俗传统
文学
舞蹈
历史话题
历史话题
举报
举报原因(必选):
取消确定举报