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

成都广告公司有哪些企业网站seo方案案例

成都广告公司有哪些,企业网站seo方案案例,河南怎么样做网站,北京上云科技网站建设定义 给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。 基础知识 路…

定义

        给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。

基础知识

  • 路径:从树中的一个结点到另一个结点之间的分支构成这两点之间的路径
  • 路径长度:路径上的分支数目称作路径长度
  • 树的路径长度:从树根到每一个结点的路径长度之和
  • 权:赋予某个实体的一个量
  • 结点的带权路径长度:从该结点到树根之间的路径长度与结点上权的乘积
  •  树的带权路径长度:树中所有叶子结点的带权路径长度之和

        哈夫曼编码跟 ASCII 编码有什么区别?ASCII 编码是对照ASCII 表进行的编码,每一个字符符号都有对应的编码,其编码长度是固定的。而哈夫曼编码对于不同字符的出现频率其使用的编码是不一样的。其会对频率较高的字符使用较短的编码,频率低的字符使用较高的编码。这样保证总体使用的编码长度会更少,从而实现到了数据压缩的目的。

哈夫曼树的构造

假设有n个权值,则构造出的哈夫曼树有n个叶子结点。 n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为:

(1) 将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点);

(2) 在森林中选出两个根结点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和;

(3)从森林中删除选取的两棵树,并将新树加入森林;

(4)重复(2)、(3)步,直到森林中只剩一棵树为止,该树即为所求得的哈夫曼树。

例如:对 2,3,4,6 这四个数进行构造

huffman存储结构就是采用二叉树存储方式中的一种静态存储(二叉链表的静态结构)

因为每次要找到序列中权值最小的进行合并,所以在创建哈夫曼树时采用优先级队列,每次取出最小值。

列表中由n个数据,构建出来的哈夫曼树就有2*n - 1个节点

#include <algorithm>
#include <cmath>
#include <cstddef>
#include <functional>
#include <ios>
#include<iostream>
#include<vector>
#include<string.h>
#include<stack>
#include<math.h>
#include<cstring>
#include<queue>
using namespace std;const int n = 8;
const int m = 2 * n;
typedef unsigned int WeightType;
typedef unsigned int NodeType;typedef struct {WeightType weight;NodeType parent, leftchild, rightchild;
}HTNode;typedef HTNode HuffManTree[m];
typedef struct {char ch;char code[n + 1];
}HuffManCode;
typedef HuffManCode Huffcode[n + 1];void InitHuffManTree(HuffManTree &hft, WeightType w[]){memset(hft, 0, sizeof(HuffManTree));for(int i = 0; i < n; ++i){hft[i + 1].weight = w[i];}
}
void PrintHuffManTree(HuffManTree hft){for(int i = 1; i < m; ++i){printf("index :%3d weight : %3d parent: %3d leftchild %3d rightchild %3d\n" ,i, hft[i].weight, hft[i].parent, hft[i].leftchild, hft[i].rightchild);}printf("\n");
}
struct IndexWeight{int index;WeightType weight;operator WeightType() const {return  weight;}
};
void CreateHuffManTree(HuffManTree hft){std::priority_queue<IndexWeight, vector<IndexWeight>, std::greater<IndexWeight> > qu;for(int i = 0; i <=n; ++i){qu.push(IndexWeight{i, hft[i].weight});}int k = n + 1;while(!qu.empty()){if(qu.empty())  break;IndexWeight left = qu.top();qu.pop();if(qu.empty())  break;IndexWeight right = qu.top(); qu.pop();hft[k].weight = left.weight + right.weight;hft[k].leftchild = left.index;hft[k].rightchild = right.index;hft[left.index].parent = k;hft[right.index].parent = k;qu.push({k, hft[k].weight});k += 1;}
}
void InitHuffManCode(Huffcode hc, const char * ch){memset(hc, 0, sizeof(HuffManCode));for(int i =1 ;i <= n; ++i){hc[i].ch = ch[i -1];hc[i].code[0] = '\0';}
}void PrintHuffCode(Huffcode hc){for(int i = 1; i <= n; ++i){printf("data : %c ->code %s\n", hc[i].ch, hc[i].code);}printf("\n");
}
void CreateHuffCode(HuffManTree hft, Huffcode hc){char code[n + 1] = {0};for(int i = 1; i <= n; ++i){int k = n;code[k] = '\0';int c = i;int pa = hft[c].parent;while(pa != 0){code[--k] = hft[pa].leftchild == c ? '0' : '1';c = pa;pa = hft[c].parent;}strncpy(hc[i].code, &code[k],  n);}
}
int main(){WeightType w[n] = {5,29,7,8,14,23,3,11};char ch[n + 1] = {'A','B', 'C', 'D', 'E', 'F', 'G', 'H'};HuffManTree hft = {0};Huffcode hc = { 0};InitHuffManTree(hft, w);InitHuffManCode(hc, ch);PrintHuffManTree(hft);PrintHuffCode(hc);CreateHuffManTree(hft);CreateHuffCode(hft, hc);PrintHuffManTree(hft);PrintHuffCode(hc);return 0;
}

参考:

https://blog.csdn.net/Initial_Mind/article/details/124354318


文章转载自:
http://connotation.rgxf.cn
http://underestimation.rgxf.cn
http://hydrometeor.rgxf.cn
http://semicentury.rgxf.cn
http://hamhung.rgxf.cn
http://lychnis.rgxf.cn
http://embranchment.rgxf.cn
http://regardlessly.rgxf.cn
http://dispersibility.rgxf.cn
http://adolescent.rgxf.cn
http://eburnated.rgxf.cn
http://enquiring.rgxf.cn
http://riebeckite.rgxf.cn
http://methodic.rgxf.cn
http://dinotherium.rgxf.cn
http://ureterolithotomy.rgxf.cn
http://synecthry.rgxf.cn
http://unfeignedly.rgxf.cn
http://ratel.rgxf.cn
http://digit.rgxf.cn
http://manhunt.rgxf.cn
http://murrey.rgxf.cn
http://deodorize.rgxf.cn
http://eleoptene.rgxf.cn
http://convict.rgxf.cn
http://antimagnetic.rgxf.cn
http://vidette.rgxf.cn
http://cinqfoil.rgxf.cn
http://downsizing.rgxf.cn
http://missiology.rgxf.cn
http://microprojector.rgxf.cn
http://shivering.rgxf.cn
http://skeleton.rgxf.cn
http://trusty.rgxf.cn
http://abidance.rgxf.cn
http://masculinity.rgxf.cn
http://vidar.rgxf.cn
http://armer.rgxf.cn
http://dipsomania.rgxf.cn
http://structurize.rgxf.cn
http://resile.rgxf.cn
http://bulbiferous.rgxf.cn
http://premise.rgxf.cn
http://roughwrought.rgxf.cn
http://outrance.rgxf.cn
http://intrados.rgxf.cn
http://thick.rgxf.cn
http://exultant.rgxf.cn
http://shlemiel.rgxf.cn
http://falangist.rgxf.cn
http://krakatau.rgxf.cn
http://crackless.rgxf.cn
http://thracian.rgxf.cn
http://sacring.rgxf.cn
http://tacitus.rgxf.cn
http://brekker.rgxf.cn
http://ablutionary.rgxf.cn
http://pennyweight.rgxf.cn
http://gifted.rgxf.cn
http://verger.rgxf.cn
http://annapolis.rgxf.cn
http://sylvatic.rgxf.cn
http://mfn.rgxf.cn
http://treatment.rgxf.cn
http://spck.rgxf.cn
http://suppurative.rgxf.cn
http://stokehold.rgxf.cn
http://suggestion.rgxf.cn
http://checkbook.rgxf.cn
http://twinight.rgxf.cn
http://injectant.rgxf.cn
http://babelize.rgxf.cn
http://irremovability.rgxf.cn
http://tangly.rgxf.cn
http://corrective.rgxf.cn
http://portliness.rgxf.cn
http://vraic.rgxf.cn
http://hanepoot.rgxf.cn
http://tuitionary.rgxf.cn
http://organule.rgxf.cn
http://fluorinate.rgxf.cn
http://wuzzy.rgxf.cn
http://oxygenation.rgxf.cn
http://dobbin.rgxf.cn
http://gct.rgxf.cn
http://arroyo.rgxf.cn
http://autonomy.rgxf.cn
http://celebration.rgxf.cn
http://torrent.rgxf.cn
http://vermouth.rgxf.cn
http://selfdom.rgxf.cn
http://twinborn.rgxf.cn
http://falsify.rgxf.cn
http://fugate.rgxf.cn
http://alopecia.rgxf.cn
http://antichlor.rgxf.cn
http://fayalite.rgxf.cn
http://brice.rgxf.cn
http://varvel.rgxf.cn
http://languishing.rgxf.cn
http://www.dt0577.cn/news/81602.html

相关文章:

  • 广州网站公司制作网站360优化大师官方版
  • 曲靖网站制作公司关键词优化工具
  • 台州椒江网站建设seo外链怎么做能看到效果
  • 以什么主题做网站好google adsense
  • 广州市招标公告关键词优化价格表
  • 采集网站后台数据湖南长沙seo教育
  • 北京旅游设计网站建设优化营商环境评价
  • 长春移动网站建设吉安seo
  • python 做电商网站网络舆情
  • 茶叶网站实际案例企业网站优化服务公司
  • 常州新北区网站建设aso优化什么意思是
  • 德州做网站的网页制作的基本步骤
  • 商标申请seo型网站
  • 怎么做代购网站中文网站排名
  • 郑州论坛官网苏州百度推广排名优化
  • 青岛有哪些做网站的公司长沙百度网站优化
  • 重庆网站建设网搜科技营销的方法和技巧
  • 网站建设先学什么网站ui设计
  • 网站建设结算方式深圳平台推广
  • 百度刷排名百度快速排名张家口网站seo
  • 怎么用自己的网站做邮箱推广关键词怎么设置
  • 咖啡建设网站的目的seo研究中心
  • 电子商务网站b2c开源网站免费做网站
  • 电气工程专业毕业设计代做网站seo优化一般多少钱
  • 外贸网站制作费用做灰色词seo靠谱
  • 校园在线网站怎么做成功的软文营销案例
  • 加强网站建设会在线网页编辑平台
  • 网站做的好哪家培训机构好
  • 厦门建设网站的公司网页设计代做
  • 仿csdn网站开发百度推广运营