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

做网站说什么5.0啥意思百度高级搜索

做网站说什么5.0啥意思,百度高级搜索,橙色 网站,网线制作实训报告心得体会一、哈夫曼树概念 哈夫曼树又称最优树给定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.mmbaike.com/news/66835.html

相关文章:

  • 公司网站空间域名建设做引流的公司是正规的吗
  • 西安手机网站建设公司注册城乡规划师教材
  • 梧州网站推广设计杭州网站提升排名
  • 微网站开发第三方平台seo搜索引擎优化书籍
  • 前端接私活一个页面多少钱网站seo外包价格
  • 网站建设目的确定灰色词网站seo
  • 临沂个人做网站凤凰军事新闻最新消息
  • 邮编域名做网站网络推广平台有哪些?
  • 公司做网站的费用记什么科目公司的网站制作
  • 合肥网站建设怎么做seo算法入门教程
  • 南通做网站优化国外外链平台
  • 维修报价单模板北京公司排名seo
  • 上门做网站婚恋网站排名前十名
  • 怎样做自己的微商网站东莞做网站公司
  • 做视频资源网站有哪些seoul怎么读
  • ps做网站标签福州百度推广开户
  • 网站如何做流量赚钱吗绍兴seo外包
  • 做网站毕业设计能过吗seo导航站
  • mip织梦手机网站模板泰州seo
  • 东莞大岭山注册公司seo系统培训哪家好
  • 做网站要主机还是服务器搜索平台
  • 淘宝店铺购买的服务在哪里seo检查工具
  • 网站 中国最早做网站的黑帽seo之搜索引擎
  • 网站设计与管理方向新冠疫情最新情况
  • 小程序怎么上架商品百度的关键词优化
  • 做麻将网站关键词排名监控
  • 做恐怖网站近期国内外重大新闻10条
  • 福建省机关效能建设网站百度应用搜索
  • 企业的网站建设完美动力培训价格表
  • 四川学校网站建设网站增加外链的方法有哪些