中原彼得堡航空学院网站的建设,用动物做网站名,wordpress首页优化缩略图,服装网上商城网站建设报告数据结构课程设计题目#xff1a;电文的编码与译码院系#xff1a;班级#xff1a;学号#xff1a;姓名#xff1a;2014-2015年度 第1学期目录一#xff0e;题目#xff1a;电文的编码与译码3二#xff0e;设计目标3三#xff0e;问题描述3四#xff0e;需求分析3五电文的编码与译码院系班级学号姓名2014-2015年度 第1学期目录一题目电文的编码与译码3二设计目标3三问题描述3四需求分析3五概要设计4六详细设计(给出算法的伪码描述和流程图)4流程图设计4主流程图4哈夫曼编码5哈夫曼译码6建立哈夫曼树8代码分析10第一步定义常量与结构体10建立哈夫曼树10哈夫曼编码11哈夫曼译码12第三步在主函数中调用其它函数13七测试分析14八使用说明14九测试数据15十课程设计总结16电文的编码与译码一题目电文的编码与译码二设计目标帮助学生熟练掌握了解哈弗曼树的创建以及利用哈弗曼进行编码和译码。三问题描述从键盘接收一串电文字符输出对应的Huffman编码。同时能翻译由Huffman编码生成的代码串输出对应的电文字符串。四需求分析在电报通信中电文是以二进制代码传送的。在发送时需要将电文中的字符转换成二进制代码串即编码在接收时要将收到的二进制代码串转化为对应的字符序列即译码。我们知道字符集中的字符被使用的频率是非均匀的。在传送电文时要想使电文总长可能短。因此若对某字符集进行不等长编码的设计则要求任意一个字符的编码都不是其他字符编码的前缀这种编码称做前缀编码。由Huffman树求得的编码是最优前缀也叫Huffman编码。给出字符集和各个字符的概率分布构造Huffman树将Huffman树中的每个分支结点的左分支标0右分支标1将根到每一个叶子路径上的标号连起来就是该叶子所代表字符的编码。五概要设计构建一颗Huffman树实现Huffman编码并用Huffman编码生成的代码串进行译码。程序中字符和权值是可变的实现程序的灵活性。六详细设计(给出算法的伪码描述和流程图)总体操作步骤流程图设计主流程图哈夫曼编码哈夫曼译码建立哈夫曼树代码分析第一步定义常量与结构体#define MAXNUM 50typedef char DataType;typedef struct/* 哈夫曼树结点的结构 */{DataType data; /* 数据用字符表示 */int weight; /* 权值 */int parent; /* 双亲 */int left; /* 左孩子 */int right; /* 右孩子 */}HuffNode;typedef struct/* 哈夫曼编码的存储结构 */{DataType cd[MAXNUM];/* 存放编码位串 */int start; /* 编码的起始位置 */}HuffCode;第二步构造函数建立哈夫曼树int HuffmanCreate(HuffNode *ht){int i,k,n,m1,m2,p1,p2;printf(请输入元素个数);scanf(%d,n);for(i1;in;i) /* 输入结点值和信息 */{getchar(); /* 接收回车 */printf(第%d个元素的\n\t结点值,i);scanf(%c,ht[i].data);printf(\t权 重);scanf(%d,ht[i].weight);}for(i1;i2*n-1;i) /* 对数组初始化 */ht[i].parentht[i].leftht[i].right0;for(in1;i2*n-1;i){m1m232767; /* 初始化令m1、m2为整数最大值 */p1p21;for(k1;ki-1;k) /* 从数组ht[1]到ht[i-1]中找出 */if(ht[k].parent0) /* parent为0并且权值最小的两个结点 */if(ht[k].weight