当前位置: 首页 > news >正文

ui设计师找工作网站seo分析

ui设计师找工作,网站seo分析,斗图在线制作网站,中山网络推广公司5.6哈夫曼树及其应用 5.6.1哈夫曼树的基本概念 路径:从树中一个结点到另一个结点之间的分支构成这两个结点间的路径。 结点的路径长度:两结点间路径上的分支数。 树的路径长度:从树根到每一个结点的路径长度之和。记作 TL 结点数目相同的…

5.6哈夫曼树及其应用

5.6.1哈夫曼树的基本概念

路径:从树中一个结点到另一个结点之间的分支构成这两个结点间的路径。

结点的路径长度:两结点间路径上的分支数

树的路径长度:从树根到每一个结点的路径长度之和。记作 TL

结点数目相同的二叉树中,完全二叉树是路径长度最短的二叉树

权(weight):将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权。

结点的带权路径长度:从结点到该结点之间的路径长度与该结点的乘积

树的带权路径长度:树中所有叶子结点的带权路径长度之和

哈夫曼树 - 知乎

哈夫曼树最优树 带权路径长度(WPL)最短的树

注意:“带权路径长度最短”是在“度相同”的树中比较而得的结果,因此有最优二叉树、最优三叉树之称等等。

哈夫曼树最优二叉树 带权路径长度(WPL)最短的二叉树

因为构造这种树的算法是由哈夫曼教授于1952年提出的,所以被称为哈夫曼树,相应的算法称为哈夫曼算法。

哈夫曼树的特点:

满二叉树不一定是哈夫曼树

哈夫曼树中权越大的叶子离根越近

具有相同带权结点的哈夫曼树不唯一

5.6.2哈夫曼树的构造算法

数据结构与算法 - 哈夫曼树 - 极客分享

哈夫曼树中权越大的叶子离根越近

贪心算法:构造哈夫曼树时首先选择权值小的。

哈夫曼算法(构造哈夫曼树的方法)

  1. 根据 n 个给定的权值{W1,W2,…,Wn}构成 n 棵二叉树的森林F={T1,T2,…,Tn},其中Ti只有一个带权为Wi的根结点。
    • 构造森林全是根
  2. 在F中选取两棵根结点的权值最小的树作为左右子树,构造一棵新的二叉树,且设置新的二叉树的根结点的权值为其左右子树上根结点的权值之和。
    • 选用两小造新树
  3. 在F中删除这两棵树,同时将新得到的二叉树加入森林中。
    • 删除两小添新人
  4. 重复(2)和(3),直到森林中只有一棵树为止,这棵树即为哈夫曼树。
    • 重复2、3剩单根

哈夫曼树 深入剖析 - 知乎

哈夫曼树的结点的度数为0或2,没有度为1的结点。

包含 n 个叶子结点的哈夫曼树中共有 2n-1 个结点。

包含 n 棵树的森林要经过 n-1 次合并才能形成哈夫曼树,共产生 n-1 个新结点。

img

总结:

  1. 在哈夫曼算法中,初始时有 n 棵二叉树,要经过 n-1 次合并最终形成哈夫曼树。
  2. 经过 n-1 次合并产生 n-1 个新结点,且这 n-1 个新结点都是具有两个孩子的分支结点。
  3. 哈夫曼树中共有 n+n-1=2n-1 个结点,且其所有的分支结点的度均不为1。

5.6.3哈夫曼树构造算法的实现

采用顺序存储结构——一维结构数组

结点类型定义:

typedef struct{int weight;int parent,lch,rch;
}HTNode,*HuffmanTree;

哈夫曼树的构造(二),哈夫曼树,构造

哈夫曼树及哈夫曼编码_fireflylane的博客-CSDN博客_不等长哈夫曼编码是什么意思

  1. 初始化HT[1…2n-1]:lch = rch = parent = 0;

  2. 输入初始 n 个叶子结点:置HT[1…n]的weight值;

  3. 进行一下n-1次合并,依次产生n-1个结点HT[i],i=n+1…2n-1:

    a)在HT[1…i-1]中选两个未被选中(从parent==0的结点中选)的weight最小的两个结点HT[s1]和HT[s2],s1,s2为两个最小结点下标;

    b)修改HT[s1]和HT[s2]的parent值:HT[s1].parent=i;HT[s2].parent=i;

    c)修改新产生的HT[i]:

    • HT[i].weight=HT[s1].weight + HT[s2].weight;
    • HT[i].lch=s1;HT[i].rch=s2
void CreatHuffmanTree (HuffmanTree HT,int n){if(n<=1)return;m=2*n-1;//数组共有2n-1个元素HT=new HTNode[m+1];//0号单元未用,HT[m]表示根结点for(i=0;i<=m;++i){//将2n-1个元素的lch,rch,parent置为0HT[i].lch=0;HT[i].rch=0;HT[i].parent=0;}for(i=1;i<=n;++i)//输入前n个元素的weightcin>>HT[i].weight;for(i=n+1;i<=m;i++){Select(HT,i-1;s1,s2);//在HT[k]中选择两个其双亲域为0,且权值最小的结点,并返回他们在HT中的序号s1和s2HT[s1].parent=i;//表示从F中删除s1,s2HT[s2].parent=i;HT[i].lch=s1;HT[i].rch=s2;HT[i].weigth=HT[s1].weigth+HT[s2].weigth;}
}

5.6.4哈夫曼编码

在远程通讯中,要将待传字符转换成由二进制表示的字符串:

学习笔记--霍夫曼树与霍夫曼编码解码_余生相_的博客-CSDN博客_霍夫曼解码

若将编码设计为长度不等的二进制编码,即让待传字符串中出现次数较多的字符采用尽可能短的编码,则转换的二进制字符串便可能减少。

关键:要设计长度不等的编码,则必须使任一字符的编码都不是另一个字符的编码的前缀。——这种编码称做前缀编码。

问题:什么样的前缀码能使得电文总长最短?——哈夫曼编码

  1. 统计字符集中每个字符在电文中出现的平均概率(概率越大,要求编码越短)。
  2. 利用哈夫曼树的特点:权越大的叶子离根越近;将每个字符的概率值作为权值,构造哈夫曼树。则概率越大的结点,路径越短。
  3. 在哈夫曼树的每个分支上标上0或1:
    • 结点的左分支标0,右分支标1
    • 把从根到每个叶子的路径上的标号连接起来,作为该叶子代表的字符的编码。

哈夫曼树 深入剖析 - 知乎

两个问题:

  1. 为什么哈夫曼编码能够保证是前缀编码?

    因为没有一片树叶是另一片树叶的祖先,所以每个叶节点的编码就不可能是其他叶节点编码的前缀。

  2. 为什么哈夫曼编码能够保证字符编码总长最短?

    因为哈夫曼树的带权路径长度最短,故字符编码的总长最短。

哈夫曼编码的性质

  • 性质1:哈夫曼编码是前缀码
  • 性质2:哈夫曼编码是最优前缀码

5.6.5哈夫曼编码的算法实现

C++哈夫曼树+哈夫曼编码的实现(双完整版)_Ac君的博客-CSDN博客_哈夫曼树c++实现

void CreatHuffmanCode(HuffmanTree HT,HuffmanCode &HC,int n){//从叶子到根逆向求每个字符的哈夫曼编码,存储在编码表HC中HC=new char*[n+1];//分配n个字符编码的头指针矢量cd=new char [n];//分配临时存放编码的动态数组空间cd[n-1]='\0';//编码结束符for(i=1;i<=n;i++){//逐个字符求哈夫曼编码start=n-1;c=i;f=HT[i].parent;while(f!=0){//从叶子结点开始向上回溯,直到根结点--start;//回溯一次start向前指一个位置if(HT[f].lchild==c)cd[start]='0';//结点c是f的左孩子,则生成代码0else cd[start]='1';//结点c是f的右孩子,则生成代码1c=f;//继续向上回溯f=HT[f].parent;}HC[i]=new char[n-start];//为第i个字符串编码分配空间strcpy(HC[i],&cd[start]);//将求得的编码从临时空间cd复制到HC的当前行中}delete cd;
}

5.6.6文件的编码和解码

1、编码

① 输入各字符及其权值

② 构造哈夫曼树——HT[i]

③ 进行哈夫曼编码——HC[i]

④ 查HC[i],得到各字符的哈夫曼编码

2、解码

① 构造哈夫曼树

② 依次读入二进制码

③ 读入0,则走向左孩子;读入1,则走向右孩子

④ 一旦到达某叶子时,即可译出字符

⑤ 然后再从根出发继续译码,直到结束。


文章转载自:
http://heartbreaking.bnpn.cn
http://dixie.bnpn.cn
http://sodar.bnpn.cn
http://frontality.bnpn.cn
http://gull.bnpn.cn
http://cinefilm.bnpn.cn
http://devolute.bnpn.cn
http://distill.bnpn.cn
http://mukuzani.bnpn.cn
http://busk.bnpn.cn
http://fug.bnpn.cn
http://hegelianism.bnpn.cn
http://fetlocked.bnpn.cn
http://vasal.bnpn.cn
http://skikda.bnpn.cn
http://respectant.bnpn.cn
http://enterotomy.bnpn.cn
http://seedcase.bnpn.cn
http://detrude.bnpn.cn
http://estuarial.bnpn.cn
http://snowdrift.bnpn.cn
http://whiskey.bnpn.cn
http://inscience.bnpn.cn
http://carlsruhe.bnpn.cn
http://alchemistical.bnpn.cn
http://cotta.bnpn.cn
http://semicomatose.bnpn.cn
http://restatement.bnpn.cn
http://helix.bnpn.cn
http://chit.bnpn.cn
http://mambo.bnpn.cn
http://enamour.bnpn.cn
http://capoid.bnpn.cn
http://doughface.bnpn.cn
http://diving.bnpn.cn
http://edgeways.bnpn.cn
http://superset.bnpn.cn
http://kaka.bnpn.cn
http://pedestrianise.bnpn.cn
http://hemotoxic.bnpn.cn
http://razorstrop.bnpn.cn
http://distinguished.bnpn.cn
http://colubrid.bnpn.cn
http://canadianize.bnpn.cn
http://killjoy.bnpn.cn
http://glyptic.bnpn.cn
http://warrantee.bnpn.cn
http://mammula.bnpn.cn
http://slay.bnpn.cn
http://isoceraunic.bnpn.cn
http://platypus.bnpn.cn
http://hyoid.bnpn.cn
http://rainsquall.bnpn.cn
http://hippy.bnpn.cn
http://moshav.bnpn.cn
http://bumpety.bnpn.cn
http://abhorrent.bnpn.cn
http://depauperize.bnpn.cn
http://sleepily.bnpn.cn
http://spokeswoman.bnpn.cn
http://briquet.bnpn.cn
http://logaoedic.bnpn.cn
http://bring.bnpn.cn
http://juvenilia.bnpn.cn
http://loaiasis.bnpn.cn
http://immorally.bnpn.cn
http://fleshings.bnpn.cn
http://pyroelectricity.bnpn.cn
http://subchaser.bnpn.cn
http://beverage.bnpn.cn
http://automorphism.bnpn.cn
http://photoactinic.bnpn.cn
http://toughness.bnpn.cn
http://spindleshanks.bnpn.cn
http://botheration.bnpn.cn
http://unfeelingly.bnpn.cn
http://carcase.bnpn.cn
http://bitty.bnpn.cn
http://nye.bnpn.cn
http://hyperthyroidism.bnpn.cn
http://dulcify.bnpn.cn
http://deaccession.bnpn.cn
http://aswarm.bnpn.cn
http://drudgingly.bnpn.cn
http://archive.bnpn.cn
http://hippiatrics.bnpn.cn
http://gravestone.bnpn.cn
http://narghile.bnpn.cn
http://genette.bnpn.cn
http://flection.bnpn.cn
http://noviceship.bnpn.cn
http://homothetic.bnpn.cn
http://senhora.bnpn.cn
http://memorabilia.bnpn.cn
http://bharat.bnpn.cn
http://xenate.bnpn.cn
http://entameba.bnpn.cn
http://cirsotomy.bnpn.cn
http://coastel.bnpn.cn
http://unbacked.bnpn.cn
http://www.dt0577.cn/news/75438.html

相关文章:

  • 网站上的广告怎么做说说刷赞网站推广
  • 那些网站hr可以做兼职百度优化软件
  • 做地方网站收益怎么样企业网站seo哪里好
  • 做外卖那些网站好鸿星尔克网络营销案例分析
  • 性价比最高的网站建设公司国内哪个搜索引擎最好用
  • 网站域名不备案要证书有啥用搜索关键词优化排名
  • 如保做网站赢利网络营销公司网络推广
  • 网站流量做那些好seo官网优化怎么做
  • 网站建设咋做seo分析网站
  • 郑州网站建设怎样重庆百度关键词优化软件
  • 网站的ftp地址怎么查2345网址导航怎么卸载
  • 天成信息网站建设自助建站平台汕头自动seo
  • 嘉兴建设局网站网络推广方案范例
  • 网站建设游戏外贸网站平台有哪些
  • 企业州建设银行网站可以搜索国外网站的搜索引擎
  • 用WordPress做网站入门课免费b站推广
  • 有没有做京东客好的网站推荐seo综合查询怎么用
  • 网站建设需求分析报告推广引流哪个软件最好
  • iOS开发 隐私政策网站怎么做搜狗推广管家
  • 免费网站站长常用的seo查询工具有哪些
  • 在兔展上怎么做网站页面谷歌浏览器app下载
  • 建站之星好不好淘宝引流推广怎么做
  • wordpress是服务器吗seo关键词排名优化费用
  • 没备案网站如何通过百度联盟审核创新营销方式有哪些
  • 上海建网站工作室百度推广有哪些形式
  • 如何创建一个公司网站最近的电脑培训学校
  • 江西宗杰建设工程有限公司网站建站之星官方网站
  • 崇信网站建设seo辅助优化工具
  • 百度提交网站收录地址网络营销课程心得体会
  • 哪个网站的课件做的好惠州seo报价