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

权威发布意思企业网站seo服务

权威发布意思,企业网站seo服务,网站开发增值税税率是多少,互联网网站样式一、哈夫曼树概念 哈夫曼树又称最优树给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大…

一、哈夫曼树概念

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

         例给定一个有序数组{3,5,6,9,10},构造出一个哈夫曼树如下:

       树的带权路径长度规定为所有叶子结点的带权路径长度之和,记为WPL

        WPL = (3+5)*4 +  6*3 + 9*2 +10*1 = 98

二、实现代码

1、定义树结点

typedef struct huffmantreenode
{int*  data;struct huffmantreenode*  leftNode;struct huffmantreenode*  rightNode;
} HuffmanTree;

2、声明函数操作

/***创建节点
*/
HuffmanTree*  create_huffman_tree(int data);/*** 初始化哈夫曼根节点
*/
HuffmanTree*  create_huffman_tree_root(int first,int second);/*** 新增节点
*/
void  insert_huffmantree_node(HuffmanTree** tree,int data);/*** 前序遍历
*/
void  pre_oder_huffmantree(HuffmanTree** tree);/*** 销毁树
*/
void  destroy_huffmantree(HuffmanTree* tree);

3、函数定义


HuffmanTree*  create_huffman_tree(int data)
{HuffmanTree* node = malloc(sizeof(HuffmanTree*));if(node==NULL){perror("节点点申请内存失败");return NULL;}node->data = malloc(sizeof(int*));*(node->data) = data;node->leftNode = NULL;node->rightNode = NULL;return node;
}HuffmanTree*  create_huffman_tree_root(int first,int second)
{HuffmanTree*  firstNode = create_huffman_tree(first);HuffmanTree*  secondNode = create_huffman_tree(second);HuffmanTree*  root = create_huffman_tree(first+second);root->leftNode  = firstNode;root->rightNode = secondNode;return root;
}void  insert_huffmantree_node(HuffmanTree** tree,int data)
{HuffmanTree* root  =  *tree;if(root==NULL){perror("初始结点为空");return;}int rootData = *(root->data);HuffmanTree*  node = create_huffman_tree(data);   HuffmanTree*  newRoot = create_huffman_tree(data+rootData);  bool isLeft = rootData<data;newRoot->leftNode =  isLeft?root:node;newRoot->rightNode = isLeft?node:root;*tree =  newRoot;
}void  pre_oder_huffmantree(HuffmanTree** tree)
{HuffmanTree* curNode = *tree;if(curNode==NULL){return;}printf("前序遍历sort=%d\n",*(curNode->data));pre_oder_huffmantree(&(curNode->leftNode));pre_oder_huffmantree(&(curNode->rightNode));
}void  destroy_huffmantree(HuffmanTree* tree)
{if(tree==NULL){return;}destroy_huffmantree(tree->leftNode);destroy_huffmantree(tree->rightNode);free(tree);
}

4、测试函数


void  test_huffmantree()
{int  arr[] = {3,5,6,9,10};HuffmanTree*  root = create_huffman_tree_root(arr[0],arr[1]);int i = 2;for(;i<5;i++){insert_huffmantree_node(&root,arr[i]);}pre_oder_huffmantree(&root);destroy_huffmantree(root);
}

http://www.dinnco.com/news/31796.html

相关文章:

  • 网站上怎么做浮标搜索引擎优化人员优化
  • 个人做网站的注意事项百度百科词条
  • 营销型企业网站的功能有哪些长沙网络营销推广公司
  • 怎么才能搜索到自己做的网站最火网站排名
  • 免费制作自己的网站怎么免费建立网站
  • 装饰公司怎么做微网站收录优美图片手机版
  • 社区教育网站开发百度关键词怎么设置
  • 天津建设部网站保温指数运算公式大全
  • 微信网站制作哪个好seo引擎搜索网站
  • 公司网站建设计入什么科目广东seo网站设计
  • 跨境网站有哪些合肥百度推广优化
  • 淄博周村专业网站建设公司nba今日最新消息
  • 综合性电子商务网站有哪些店铺数据分析主要分析什么
  • 手机大全中关村在线安徽网站优化
  • 电商网站如何生成app珠海网络推广公司
  • 网站开发的工作经验要求百度客户端下载
  • 网站建设流程资讯百度关键词优化公司
  • 软件著作权申请费用上海还能推seo吗
  • html制作旅游网页实例汕头seo排名收费
  • 站外推广策划书3d建模培训学校哪家好
  • 小型网站设计搜索网排名
  • 贵阳网站开发哪家便宜北京企业网站推广哪家公司好
  • 用sublime text做网站线上广告宣传方式有哪些
  • 建站管理后台品牌广告策划方案
  • 广西手机响应式网站建设公司百度推广竞价排名技巧
  • 全景网站制作百度云网盘资源
  • 网站广告赚钱怎么做品牌运营策略有哪些
  • 如何建设网站效果好网页设计和网站制作
  • 赣州网站设计较好的公司竞价培训课程
  • wordpress整体加速百度seo排名软件