Input.append(1,letter);
}while(letter!= );
Input.erase(Input.length()-1,1); //去掉Input末尾的回车符
Init(Input); //根据输入的字符串创建哈夫曼树及其编码表 cout<<"直观打印哈夫曼树"<
PrintTree(2*tSize-1-1,1); //打印哈夫曼树
cout<< << ;
string d1,d2;
cout<<"编码后的字符串为"<
Encode(Input,d1); //编码并打印编码串
cout<<"解码后的字符串为"<
Decode(d1,d2); //解码并打印解码串
cout<<"ASCII码编码与HUFFMAN编码的比较"<
Calculate(Input,d1); //计算编码前后的压缩比
}
2.3 其他
1.由于题目要求能输入任意长的字符串,所以本程序采用了string变量来记录输入
的字符串,并采用string类的类成员函数来完成各项任务
2.打印哈夫曼树时采用了递归函数,且采用了凹凸表的形式打印哈夫曼树。
3.为了输入空格,输入时采取逐个字符输入的方式
3. 程序运行结果
主函数流程图:
运行结果:
各函数运行正常,没有出现bug
4. 总结
经过这次实验,我了解了哈夫曼树的创建过程,了解了一种不等长编码的方法,用设断点调试的方法更加熟练,同时熟悉了STL中string类型的用法,对C++更加熟悉
《数据结构》课程设计
1.课程设计题目
从下面四个题目中任选一题完成。c 哈夫曼树编码
1.1 的制作
用单链表作为数据结构,结合C或者C++语言基本知识,编写一个班级的管理系统。系统包括下面几方面的功能:
第1:输入信息:输入某同学的信息;
第2:显示信息:显示全部中学生的信息;
第3:查找功能:实现按姓名进行查找,并给出查找信息;
第4:删除功能:实现按姓名进行删除,并给出操作结果;
第5:每名同学的信息包括:姓名、性别、电话、城市;
第6:界面友好,每步给出适当的操作提示;
第7:系统具有一定的容错能力。
1.2 图书管理系统
设计一个计算机管理系统完成图书管理几本业务。系统要满足下面基本要求:
第1:每种图书的登记内容包括:书名、书号、作者、出版社、现存量和库存量;
第2:采编入库:新购图书,确定书号后,登记到图书账目表中,如果表中存在该书,则只将库存量增加;
第3:借阅:如果该书的库存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变库存量;
第4:归还:注销对借阅者的登记,改变该书的库存量;
第5:界面友好,每步给出适当的操作提示;
第6:系统具有一定的容错能力。
1.3 产品进销管理系统
针对某个行业的库房产品进销存情况进行管理,系统要求具有下列功能:
第1:采用一定的存储结构对库房的货品及其数量进行分类管理;
第2:可以进行产品类的添加、产品的添加、产品数量的添加;
第3:能够查询库房每种产品的总量、进货日期、销出数量、销售时间等;
第4:每种产品至少包含信息:产品名、进货日期、进货数量、销出数量、销售时间、库存量;
第5:界面友好,每步给出适当的操作提示;
第6:系统具有一定的容错能力。
1.4 校园导航问题
设计中国石油大学(北京)的校园平面图,至少包括10个场所,可以实现任意两个场所的最短路径。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-35162-14.html