资源简介
本人本科期间学习数据结构写的实验,内容如下
1、输入一段报文,例如:
CAST CAST SAT AT A TASA
统计字符集合 { C, A, S, T },以及各个字符出现的频度(次数) W={ 2, 7, 4, 5 }。
2、建赫夫曼树,并输出各个字符的赫夫曼编码
3、输入编码01100……,能准确翻译成报文
4、要求有菜单。
代码片段和文件信息
/*
**author: Happig
**time: 2020-5-10
**function:
1、输入一段报文,例如:
CAST CAST SAT AT A TASA
统计字符集合 { C A S T },以及各个字符出现的频度(次数) W={ 2 7 4 5 }。
2、建赫夫曼树,并输出各个字符的赫夫曼编码
3、输入编码01100……,能准确翻译成报文
4、要求有菜单
*/
#include
#include
#include
#include
#include
#include
using namespace std;
const int maxn=2e5+10;
///采用数组模拟链表的方式存节点
struct node{
int wid; //w是节点权值id是对应数组下标
char c; //叶子节点为字母,其他节点为#
char now; //该节点上一条路径对应的01字符,0代表左子树,1代表右子树
int falr; //该节点的父节点和左右子节点
node(){}
node(int iint weightchar chint fatherint lchildint rchild){ //初始化函数
id=iw=weightc=ch;
fa=fatherl=lchildr=rchild;
}
bool operator < (const node &p) const { //实现优先队列less容器的小根堆
return w>=p.w;
}
}a[maxn];
const char dic[]={‘C‘‘A‘‘S‘‘T‘};
const int num[]={2745};
priority_queue p; //初始化用到的优先队列
string s;
int cnt; //总的节点数
///初始化函数
void init(){
while(!p.empty()) p.pop(); //优先队列清空
for(int i=0;i<4;i++){ //根节点入队
a[i]=node(inum[i]dic[i]000);
p.push(a[i]);
}
cnt=4; //此时队列的节点数
while(p.size()>1){ //当队列只剩一个根节点时结束循环
node u=p.top(); p.pop();
node v=p.top(); p.pop();
node nd=node(cntu.w+v.w00u.idv.id); //得到新的节点
a[u.id].fa=cnta[v.id].fa=cnt; //更新节点数组的两子节点节点的父亲下标
a[u.id].now=‘0‘a[v.id].now=‘1‘nd.now=nd.c=‘#‘; //更新路径字符
a[cnt++]=nd; //新增节点入字符数组
p.push(nd); //新增节点入队
}
}
///查看哈夫曼树的结构
void Test(){
for(int i=0;i cout< cout< - 上一篇:dsp课程设计——语音加密.zip
- 下一篇:C++模拟存储器的分配与回收算法实现
相关资源
- 利用C++哈希表的方法实现电话号码查
- 学校超市选址问题(数据结构C语言版
- 数据结构,迷宫问题C语言版源代码
- DSDEMO-C演示(数据结构C语言版 严蔚敏
- 数据结构 图的遍历源代码
- 数据结构实验源代码集
- 实验报告:数据结构长整数四则运算
- 数据结构教程李春葆第五版书中例题
- 吕鑫vc6c++数据结构视频源码
- 数据结构教程李春葆第五版课后答案
- 李春葆课后习题答案(数据结构教材
- 数据结构1800题 题+答案(全)
- 数据结构(C语言版)ppt课件,清华,
- c++常用游戏算法及数据结构设计
- 数据结构超全面复习导图
- 《Data Structures and Algorithm Analysis in C
- 数据结构C语言版教学笔记严蔚敏
- 数据结构C语言版期末考试试题(有答
- 多功能计算器实现C++代码以及代码详
- C语言数据结构银行客户排队
- C语言实现栈操作
- 简易学生管理系统源码 数据结构 大作
- 数据结构与C语言综合习题集
- C语言进阶源码---基于graphics实现图书
- 数据结构——C++语言描述 陈慧南
- 广东工业大学数据结构课程设计航空
- 数据结构课程设计扑克牌排序
- 数据结构各种算法实现(C++模板),
- (严版C语言版数据结构源码.rar
- 数据结构算法与应用--C++语言描述 书
川公网安备 51152502000135号
评论
共有 条评论