- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言静态叉链表构造棵huffman树并求其编码
课程设计题目:
采用静态三叉链表构造一棵Huffman树并求其编码
一 课程设计应达到的目的:
数据结构课程设计的目的是,为了让学生在学习 《数据结构》 课程的基础上深入理解数据结构的基本理论,掌握对数据结构的各种操作的算法设计方法,增强对基础知识和基本方法的综合运用能力,增强对算法的理解能力,提高软件设计能力,在实践中培养独立分析问题和解决问题的作风和能力,进一步深入巩固所学理论知识、使理论与实际相结合的重要实践环节。本课程设计通过完成一些具有一定难度的程序的编写、调试、运行工作,掌握面向过程程序设计的基本方法,从而提高学生分析问题解决问题的能力。
课程设计是教学中很重要的一项实践环节,它可以帮助学生充分理解课堂教学中的内容,对提高学生的实践认识和实际动手能力都有很重要的实际意义。学生应在规定的时间内,按照课程设计的要求,结合所学的理论知识,查找相关资料,完成好本次课程设计,提高程序编写的能力,为将来的实际工作取得一定的经验。
二 课程设计题目及要求
采用静态三叉链表构造一棵Huffman树并求其编码
增加了权值的计算和Huffman树的输出 并写入code文件
三 主函数及分析
it学习网收集?
主程序代码
Main.cpp
#includeiostream.h
#includestring.h
#includereadFile.h
#includeHuffmanTree.h
int main()
{
char str[1000];
cinstr;
HuffmanTree htree(str);
htree.print();
htree.writetoFile();
readFile(htree.getstr1(),htree.gethufcodes(),htree.getleafNum());
return 0;
}
HuffmanTree.h
#includeiostream.h
#includestdio.h
#includestring.h
templateclass T
struct TriNode
{
T data;
int parent,left,right;
};
class HuffmanTree
{
private:
char str[1000]; //输入的字符串
char str1[1000]; //哈弗曼叶子值
int leafNum; //子叶结点个数
TriNodeint *huftree; // 哈弗曼的结点数组
char **hufcodes; //哈弗曼编码数组
void createHuffmanTree(int weight[],int n); //创建指定权值集合的哈弗曼树
void getHuffmanCode(); //获得哈弗曼编码
public:
HuffmanTree(char str5[]);
~HuffmanTree();
void writetoFile(); //写入文件
char** gethufcodes();
char* getstr1();
int getleafNum();
void print();
void print(int u);
int getheight(int r);//得出r节点的深度
};
const Max_Weight=9999; // 默认最大权值
/*******************************************************************/
HuffmanTree::HuffmanTree(char str5[])
{
strcpy(str,str5);
int count=0,i,j,k=0;
for(i=0;istrlen(str);i++)//循环做出str1,将每个str里面的字符在str1里面扫描一遍,str中在str1没出现的字符放到str1中
{
for(j=0;jcount+1;j++)
if(str[i]!=str1[j]) k++;//如果str中的字符在str1中扫描不等k++,k初值为0
if(k==count+1)//如果k等于字符串str1的长度的话 说明str[i]在str1中没出现,加到str1中
str1[count++]=str[i];
k=0;
}
str1[count]=\0;//将哈弗曼叶子字符数组最后一位置字符串结束符
/******
您可能关注的文档
最近下载
- 2023年四川农业大学考研真题之生物化学.doc
- 中药药理学-学做自己的调理师中国大学mooc课后章节答案期末考试题库2023年.pdf VIP
- 自来水企业危险化学品管理制度.docx
- 【读百遍】冯时能冷眼分享集上.pdf
- 2024年银行考试-建设银行纪检监察条线历年考题高频考点荟萃带答案.docx VIP
- 2024年宪法学习题库200道.pdf
- 自动重合闸课程设计.docx
- 2024年浙江嘉兴南洋职业技术学院招聘教职人员24人历年公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版.docx
- 骨与关节化脓性感染.pptx VIP
- 音乐人音版七年级上册《台湾风情画》教案教学设计.docx
文档评论(0)