数据结构(C++)课程设计 3号题

                                                                                                                                   

       数据结构课程设计

 

 

                                                            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
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值