数据结构课程设计实验报告哈夫曼树的应用(4)
void decode() //完成译码功能 {
cout<<\下面对根目录下文件codefile.txt中的字符进行译码\ FILE *codef,*txtfile;
if((txtfile=fopen(\ { cout<<\不能打开文件\ }
if ((codef=fopen(\ { cout<<\不能打开文件\ }
char *tbdc,*outext,i2; int io=0,i,m;
unsigned long length=10000;
tbdc=(char*)malloc(length*sizeof(char)); //分配空间 fgets(tbdc,length,codef);
outext=(char*)malloc(length*sizeof(char)); //分配空间 m=2*n-1;
for(i=0;*(tbdc+i)!='\\0';i++) //进入循环 { i2=*(tbdc+i); if(HT[m].lchild==0) { *(outext+io)=*(z+m-1); io++; m=2*n-1; i--; } else if(i2=='0') m=HT[m].lchild; else if(i2=='1') m=HT[m].rchild; }
*(outext+io)='\\0'; fputs(outext,txtfile);
cout<<\译码完成\内容写入根目录下的文件txtfile.txt中\ free(tbdc); free(outext); fclose(txtfile); fclose(codef); }
//--------------------------------------------- void printcode() //打印代码 {
16
cout<<\下面打印根目录下文件CodePrin.txt中编码字符\ FILE * CodePrin,* codefile;
if((CodePrin=fopen(\ { cout<<\不能打开文件\ return; }
if((codefile=fopen(\ { cout<<\不能打开文件\ return; }
char *work3;
work3=(char*)malloc(51*sizeof(char)); do { if(fgets(work3,51,codefile)==NULL) { cout<<\不能读取文件\ break; } fputs(work3,CodePrin); puts(work3);
}while(strlen(work3)==50); free(work3);
cout<<\打印工作结束\ fclose(CodePrin); fclose(codefile); }
void coprint(HuffmanTree start,HuffmanTree HT)//打印代码文件 {char t=' '; if(start!=HT) {
FILE * TreePrint;
if((TreePrint=fopen(\ { cout<<\创建文件失败\ return; }
numb++;//该变量为已被声明为全局变量 coprint(HT+start->rchild,HT);
if(start->lchild!=NULL&&start->rchild!=NULL) t='<'; cout< 17 fprintf(TreePrint,\ coprint(HT+start->lchild,HT); numb--; fclose(TreePrint); } } void printree(HuffmanTree HT,int w) //打印赫夫曼树 { HuffmanTree p; p=HT+w; cout<<\下面打印赫夫曼树\输出\打印赫夫曼树\语句 coprint(p,HT); cout<<\打印工作结束\输出\打印工作结束\} void printhead() { cout<<\数据结构\\t课程设计\\t信管11101班 201117020126\\n\ cout<<\ cout<<\ i.初始化赫夫曼链表 w.编码字符 cout<<\ e.编 码 d.译 码 cout<<\ p.打印编码 t.打印赫夫曼树 cout<<\ q.退 出 \\n\\t\\t\ if(flag==0)cout<<\请先初始化赫夫曼链表,输入'i'\\n\ cout<<\请选择你要进行的操作:\} /*2.主程序*/ void main() { char choice; while(choice!='q') { printhead(); cin>>choice; switch(choice) { case 'i': //按下i则进行初始化赫夫曼链表,调用init函数 init(); break; case 'w': //按下w编码字符,调用inputcode函数 inputcode(); break; case 'e': //按下e编码,调用encode函数 encode(); break; 18 伍瑶\\n\\t\\t\\\n\\t\\t\ \\n\\t\\t\ case 'd': //按下d译码,调用decode函数 decode(); break; case 'p': //按下p打印编码,调用printcode函数 printcode(); break; case 't': //按下t打印赫夫曼树,调用printree函数 printree(HT,2*n-1); break;
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




