实验6编码.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验6 编码6-1 Huffman编码实验任务与目的编辑并运行程序:构拟并输出霍夫曼编码。编程序时需要注意以下问题:·森林用列表定义,列表中每一个元素都是一棵二叉树。·采用简单选择法对森林中的树进行排序。·采用递归法遍历二叉树,遍历时生成Huffman编码。程序中需要定义二叉树的节点类,还要编写二叉树按逆序排序的函数。通过本实验掌握编程构造霍夫曼树并最终完成霍夫曼编码的方法,了解压缩编码方案设计的一般程序。实验步骤与运行结果(1)源代码:charSet=[a,b,c,d,e,f,g]weightSet=[21/93,26/93,11/93,8/93,10/93,11/93,6/93]size=len(charSet)class Node: def __init__(self): self.symbol=None self.weight=None self.left=None self.right=Nonedef sortList(sList,size): for i in range(size-1,0,-1): minWeight=sList[i].weight index=i for j in range(i-1,-1,-1): if minWeightsList[j].weight: minWeight=sList[j].weight index=j temp=sList[i] sList[i]=sList[index] sList[index]=tempcharList=[]for i in range(size): charList.append(Node()) charList[i].symbol=charSet[i] charList[i].weight=weightSet[i]while(size!=1): sortList(charList,size) small1=charList[size-2] small2=charList[size-1] NewNode=Node() NewNode.symbol=small1.symbol+small2.symbol NewNode.weight=small1.weight+small2.weight NewNode.left=small1 NewNode.right=small2 charList[size-2]=NewNode size=size-1def traverse(preStr,root,output): if root.left==None and root.right==None: output[root.symbol]=preStr else: if root.left!=None: traverse(preStr+0,root.left,output) if root.right!=None: traverse(preStr+1,root.right,output)output={a:,b:,c:,d:,e:,f:,g:}traverse(,charList[0],output)for i in range(0,len(charSet),1): print(charSet[i]+:,output[charSet[i]])(2)运行结果截图6-2 加密和解密实验任务与目的编辑并运行程序:输入一串英文字符(明文),输出经过加密后的“密文”。加密方法包括:(1)单字符替代加密; (2)列换位加密; (3)位级加密。通过本实验掌握简单的凯撒加密、换位加密及位级加密的编程实现方法,了解传统加密的一般思想。2.实验步骤与运行结果(1)单字符替代加密①源代码:def CaesarEncrypt(text): Caesar= for i in range(0,len(text),1): if(ord(text[i])=ord(a))and(ord(text[i])=ord(z)): Caesar=Caesar+chr(ord(a)+((ord(Text[i])-ord(a)+3)%26)) else: if(ord(text

文档评论(0)

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

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

1亿VIP精品文档

相关文档