数据结构课程设计
3号课程设计题目 |
|
姓 名 |
叶思怡 |
学 号 |
201311672123 |
专 业 |
物联网工程1131 |
学 院 |
信息学院 |
一. 题目要求
题目3.
在一个加密应用中,要处理的信息来自下面的字符集,各个字符的相关使用频度如下:
字符 空格 A B C D E F G H I J K L M
频度 180 64 13 23 32103 22 15 4757 1 5 31 20
字符 N O P Q R S T U V W X Y Z
频度 55 63 151 48 56 80 25 7 18 2 16 1
现请编写程序你实现如下功能:
(1)运行时,由用户输入来初始化字符集大小和相应用字符。
(2)输入一个要加密的字符串,将其加密。
(3)输出解密字符串。
二.程序如下
#include<stdio.h>
#define N 27 //空格+26个大写字母
#define M 2*N-1
#define infinity 32767
struct node //huffman树的结点结构
{
int weight; //结点权值
int plink,llink,rlink; //双亲,左孩子,右孩子
};
struct codetype //huffman编码结构
{
int start; //起始位置
char bits[N+1]; //存放0,1的数组
};
struct element //字符及其编码的结构
{
char symbol; //字符
struct codetype code; //字符编码
};
struct node tree[M+1]; //n个结点的huffman树
struct elem