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

wordpress 企业网站模板网页基础设计

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.yayakq.cn/news/991203/

相关文章:

  • 重庆市工程建设信息网新网站推广方式有哪几种
  • 普通网站服务器莱西网站建设
  • wordpress建站专家wordpress 页面目录下
  • 怎么从网上找客户seo是哪个国家
  • 设计素材网站排版gofair外贸建站
  • 网站搭建后提示建设中手机主题wordpress免费下载
  • 做网站是否需要自购服务器成都双语网站开发
  • 定制网站 报价厦门网站建设技术支持
  • 做刷单网站违法吗什么是网络营销4c理论
  • 如何做一个网站设计wordpress支持 nginx
  • 网站开发公司源码微信开发者工具
  • wordpress+4.5+多站点中小工厂erp管理系统
  • 简单的旅游网站代码百度指数数据分析平台入口
  • 网站备案的是域名还是空间wordpress安卓客户端
  • 做网站设计抬头个人网站免费制作平台
  • 企业建网站服务商做针织衫的网站
  • 如何在百度中搜索到网站nginx php wordpress
  • 网站维护包括哪些工作网站开发 学习步骤
  • 福田市网站建设推广wordpress 4 下载
  • 黄浦网站设计旅游攻略的网站怎么做
  • 网站建设要学哪些方面寻找聊城做网站的公司
  • 网站关于我们什么意思wordpress hls
  • 广州市建设工程安全监督站网站微信公众号的推广
  • h5网站价格方案wordpress the7 建站
  • 医疗保健 网站 备案网站设计与管理方向
  • wordpress多站点问题做的网站没法用能否拒绝付工资
  • 网站设计方案怎么写平台推广策划方案
  • 湖南响应式网站建设公司怎么快速建设小型外贸网站
  • 长沙旅游seo优化方案ppt
  • 青海网站制作多少钱公司网站不续费