版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
年4月19日数据结构课程设计模板文档仅供参考,不当之处,请联系改正。 姓名: 学号: 班级: 指导老师: 学院:计算机学院1大数相乘问题描述两个比较大的数,远远超过longlong类型,相乘,并计算结果。设计思路经过模拟手工计算两数相乘,从低位乘到高位,两重循环,第一重循环控制乘数的第i位数与被乘数的相乘,第二重循环是被乘数的第j位数。第二重循环每循环完一次,再把结果*10与上次的结果相加,这里又运用到了大数相加,这样一直处理到第一重循环结束。只要合理的处理好进位就能够了。数据结构设计把两数每位数存放数组里,经过控制循环实现相乘。功能函数设计voidnixu()voidmul();计算两个存在数组里的大数计算相乘结果。程序代码#include<iostream>#include<cstring>usingnamespacestd;voidnixu(char*str,intp,intq){chartemp;while(p<q){temp=str[p];str[p]=str[q];str[q]=temp;p++;q--;}}voidmul(char*str1,char*str2){ charresult[200];intl1=strlen(str1);intl2=strlen(str2);memset(result,'0',l1+l2);result[l1+l2]='\0';nixu(str1,0,l1-1);nixu(str2,0,l2-1);intindex1;intindex2;for(inti=0;i<l2;i++){index1=0;index2=0;for(intj=0;j<l1;j++){inttemp1=(str1[j]-'0')*(str2[i]-'0')+index1;index1=temp1/10;temp1=temp1%10;inttemp2=(result[i+j]-'0')+temp1+index2;index2=temp2/10;result[i+j]=temp2%10+'0';}result[i+l1]+=index1+index2;}nixu(result,0,l1+l2-1); cout<<"相乘后的数字为:"<<endl; for(inti=0;i<l1+l2;i++) { if(result[i]!='0') cout<<result[i]; } cout<<endl;}intmain(){ charstr1[100],str2[100]; cout<<"请输入需要相乘的数字"<<endl; cin>>str1; cin>>str2; intl1=strlen(str1); intl2=strlen(str2); mul(str1,str2); return0;}6运行测试 7设计心得大数相乘和大数相加不一样,大数相加比大数相乘简单一些,因此在大数相乘这边花了一点时间。哈弗曼树1.问题描述 欲发一封内容为AABBCAB……(共长100字符,其中:A、B、C、D、E、F分别有7、9、12、22、23、27个)的电报报文,实现哈夫曼编码,并求平均编码长度。2.设计思路建立一个哈夫曼树,求编码的,再求平均编码长度。3.数据结构设计建立一个储存字符出现数目以及字符编码后的长度structInfor{ intweight; intlength;}w[30];再建立一个储存哈夫曼树的结点数据结构typedefstruct{ charch; intweight; intlchild,rchild,parent;}Hnode;4.功能函数设计voidselect(constHnodeHT[],intn,int&s1,int&s2)求数组中权值最小和次小的值的下标voidHTree(Hnode*huff,Inforw[],intn)建立哈夫曼树,编码和编码长度。5.程序代码#include<stdio.h>#include<string.h>#include<limits.h>typedefstruct{ charch; intweight; intlchild,rchild,parent;}Hnode;structInfor{ intweight; intlength;}w[30];voidselect(constHnodeHT[],intn,int&s1,int&s2){inti;s1=s2=0;intmin1=INT_MAX;//最小值,INT_MAX在<limits.h>中定义的intmin2=INT_MAX;//次小值for(i=1;i<=n;++i){ if(HT[i].parent==-1) { //筛选没有父节点的最小和次小权值下标 if(HT[i].weight<min1) { //如果比最小值小 min2=min1; s2=s1; min1=HT[i].weight; s1=i; } elseif((HT[i].weight>=min1)&&(HT[i].weight<min2)) { //如果大于等于最小值,且小于次小值 min2=HT[i].weight; s2=i; } else { //如果大于次小值,则什么都不做 ; } }}}voidHTree(Hnode*huff,Inforw[],intn){ intm=2*n-1,sum,s1,s2; for(inti=1;i<=n;++i) { huff[i].weight=w[i-1].weight; huff[i].lchild=huff[i].rchild=huff[i].parent=-1; } for(inti=n+1;i<=m;++i) { huff[i].weight=-1; huff[i].lchild=huff[i].rchild=huff[i].parent=-1; } if(n!=1) { for(inti=1;i<=n-1;++i) { select(huff,n+i-1,s1,s2); sum=huff[s1].weight+huff[s2].weight; huff[n+i].weight=sum; huff[s1].parent=huff[s2].parent=n+i; huff[n+i].lchild=s1; huff[n+i].rchild=s2; } } else { w[0].length=1; } for(inti=1;i<=n;++i) { intk=0,c=0; chartemp[10]; for(intj=huff[i].parent,k=i;j!=-1;k=j,j=huff[j].parent) { w[i-1].length++; if(huff[j].lchild==k) { temp[c++]='0'; } else { temp[c++]='1'; } } printf("%c的编码为:",i+'A'-1); for(inti=c-1;i>=0;--i) { putchar(temp[i]); } puts(""); }}intmain(){ Hnodehuff[60]; charstr[1000]; w[0].weight=7; w[1].weight=9; w[2].
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JJF 2476-2026腹膜透析机校准规范
- T/SHATCMI 0002-2023藏红花质量规范
- T/NAHIEM 158-2025日夜分护婴儿纸尿裤
- T/CECCEDA 3-2025企业文化建设指南
- T/CHAA 037-2024医疗机构特殊医学用途配方食品运营管理规范
- T/CSMT YB023-2026动态公路车辆自动衡器期间核查技术规范
- GB/T 3102.7-2026量和单位第7部分:光和辐射
- 2025~2026学年河北省保定市涞水县人教版六年级上册11月期中数学试卷【附答案】
- 2027届四川省绵阳市游仙区数学八上期末综合测试模拟试题含解析
- PHP工程师笔试真题(含详细答案·企业实操版)
- 2026年广西北部湾国际港务集团有限公司人员招聘笔试参考试题及详细答案解析
- 自考 08257 舆论学・重点精简版(速记 + 考点)
- 2026年校招:太平洋保险笔试题及答案
- 2026国企招聘考试公共基础知识考试题(含答案)
- 2025年银行考试-银行间本币市场交易员资格笔试考试历年典型考题及考点
- 安徽省2026年中考数学试题(解析版)
- 【万科集团财务风险防范措施研究8400字(论文)】
- 重庆市康德卷2025-2026学年高二下学期期末考试+政治试题(含答案)
- 管道巡线管理办法培训
- 汽车制造工艺基础+车身冲压+课件
- 产后出血的识别与紧急处理
评论
0/150
提交评论