数据结构实验报告.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构实验报告 实验目的 1、提高用C语言编写算法、进行程序设计的能力; 2、掌握各种查找和排序算法及其实现技术,了解它们在时间和空间复杂性方面的性能,熟悉各种查找和排序方法的适用性; 3、熟悉哈夫曼树的构造与编码方法,体会哈夫曼编码的优点,了解其在通信工程中的应用。 实验内容和要求 1、试设计一算法,从包括n个元素的数组中,求最大和最小元素,并使得当n个元素为有序排列时,元素之间的比较次数仅为n-1次。 2、在给出的Huffman编码源程序基础上,要求画出Huffman树,求出与等长编码相比时的压缩比。 要求根据实验内容编写算法,并用 C 语言进行程序设计;然后将所编程序在计算机上调试通过,并全面测试;最后整理完成实验报告,包括:姓名、学号、实验日期等。 程序清单 实验内容1: 解法一: #include<stdio.h> #include<malloc.h> void main() { printf("请输入数组长度n:\n"); int n,min,max,x=1,*p; //x为元素间的比较次数,赋初值1是因为下面if语句中元素比较了一次 scanf("%d",&n); //给n输入具体值 printf("请输入%d",n); p=(int*)malloc(n*sizeof(int)); //开辟一段动态空间,p指向其首地址 printf("个数组元素:\n"); for(int i=0;i<n;i++) //从键盘输入数据初始化数组 scanf("%d",&p[i]); if(p[0]<p[1]) //p[0]<p[1],则有可能是升序排列 { min=p[0]; //给最大最小值赋初值 max=p[1]; for(i=2;i<n;i++) { x+=2; if(max<=p[i]) //如果是升序排列,则if条件满足,else if不会再执行 { //则for循环执行n-2次,加上上面的一次,共n-1次,满足要求 x--; //如果if条件满足,则else if不会再执行,减去多加的一次x max=p[i]; } else if(min>p[i]) min=p[i]; else continue; //结束本次循环 } } else //p[0]<p[1],则有可能是降序排列 { max=p[0]; //给最大最小值赋初值 min=p[1]; for(i=2;i<n;i++) { x+=2; if(min>=p[i]) //如果是降序排列,则if条件满足,else if不会再执行 { //则for循环执行n-2次,加上上面的一次,共n-1次,满足要求 x--; //如果if条件满足,则else if不会再执行,减去多加的一次x min=p[i]; } else if(max<p[i]) max=p[i]; else continue; //结束本次循环 } } printf("最大值为:%d\n",max); //输出数组元素最大值 printf("最小值为:%d\n",min); //输出数组元素最小值 printf("元素之间的比较次数为:%d\n",x); //输出数组元素之间的比较次数 free(p); //释放p指向的空间 p=NULL; //释放堆内存后,p为野指针,为避免p指向不明空间,让p成为空指针 } 解法二: #include<stdio.h> #include<malloc.h> int wzc(int*,int,int*,int*); //声明函数wzc void main() { int n,x,max,min,*p; //n为数组元素个数,max、min分别是数组元素的最大值和最小值,p指向数组首地址 printf("请输入数组长度n:\n"); scanf("%d",&n);

文档评论(0)

baihuamei + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档