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

青岛专业网站建设推广报价建个网站需要多少钱圣宝电动车大架号在哪里

青岛专业网站建设推广报价,建个网站需要多少钱圣宝电动车大架号在哪里,哪里可以自己免费开网店,wordpress前台登录模块一、哈夫曼树概念 哈夫曼树又称最优树给定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.15wanjia.com/news/183554.html

相关文章:

  • 网站建设与管理是学什么wordpress微信快速登录
  • 保山企业网站建设网络网站建设公司排名
  • 品牌网站设计制作多少钱网站建设有哪些步骤
  • 济南 网站建设私家网站ip地址大全
  • 北京怎样做企业网站天津网站建设 企航互联
  • 做网站推广的前期条件广东免费建站公司
  • 网站建设策略阿里巴巴一个网站的制作特点
  • 网站seo诊断评分45php做简单网站例子
  • 常州制作网站软件特种设备企业服务平台
  • 建网站的公司做网站的功能是什么
  • 建网站要去备案南安市住房和城乡建设部网站
  • 模仿网站建设站建设app推广拉新
  • 网站建设和电子商务的关系佛山医疗网站建设
  • 网站别人帮做的要注意什么手续公众号文章模板免费
  • 花店网站设计南京网站建设cnee
  • 建筑模型设计网站建设网站后期维护工作包括哪些
  • 公司营销网站怎么做宿迁手机网站开发公司
  • 通化 网站建设在线教育网站建设策划
  • 广宗网站建设那个网站制作比较好
  • 网站内容和备案不一无代码开发小程序
  • 做最好的整站模板下载网站有什么可以做兼职的网站
  • 国内大的网站建设公司visual studio怎么创建网页
  • 网站备案通过后怎么办合肥装饰公司
  • 正版网站设计制作观澜专业做网站公司
  • 做网站模板的网页名称是m开头网站要服务器吗
  • 九易建网站的建站模板wordpress 打包
  • 做图客网站深圳平面设计培训
  • wordpress开发网站模板公司管理系统的好处
  • 自助下单网站怎么做做淘客网站用备案
  • 深圳服务网站入口宝山区网站建设