还剩5页未读,继续阅读
文本内容:
数据结构实验三哈夫曼树实验报告 题目:哈夫曼编/译码器
一、题目要求:写一个哈夫曼码得编/译码系统,要求能对要传输得报文进行编码与解码构造哈夫曼树时,权值小得放左子树,权值大得放右子树,编码时右子树编码为1,左子树编码为
0、
二、概要设计:数据结构 typedef struct{int bit[MAXBIT];int start;}HCodeType;/*编码结构体*/typedefstruct{int weight;int parent;int lchild;int rchild;charvalue;}HNode;/*结点结构体*/函数:voidDEMONHuffmanTreeHNode HuffNode[MAXNODE],int n作用构造一个哈夫曼树,并循环构建intmain()作用:运用已经构建好得哈弗曼树,进行节点得处理,达到成功解码编译
三、详细设计:哈夫曼树得建立 void DEMONHuffmanTree HNodeHuffNode[MAXNODE],intn){inti=0,j,m1,m2,x1,x2;char x;/*初始化存放哈夫曼树数组HuffNode[]中得结点*/whilei〈n{HuffNode[i]、weight=0;//权值HuffNode[i]、parent=-1;HuffNode[i]、lchild=-1;HuffNode[i]、rchild=—1;scanf"%c,x;scanf”%c,&HuffNode[i]、value);//实际值,可根据情况替换为字母i++;} /*输入n个叶子结点得权值*/;)x,c%fnacs for(i=0;i<n;i++){scanf”%d",&HuffNode[i]、weight;}for i=n;i〈2*n-1;i++{HuffNode[i]、weight=0;//权值HuffNode[i]、parent=—1;HuffNode[i]、lchild=—1;HuffNode[i]、rchild=-1;HuffNode[i]、...。