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

网站案例展示网站及网页设计费用

网站案例展示,网站及网页设计费用,华为快速建站,大型公司网站建设目标一、哈夫曼树概念 哈夫曼树又称最优树给定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/891360/

相关文章:

  • 佛山网站制作专家wordpress栏目出现404
  • 高端网站建设设计公司广告推广费用一般多少
  • 做网站用php还是python百度快照怎么用
  • 阿里云二级域名网站怎么建设手机网站可以做动态吗
  • 做网站要具备些什么条件在哪里可以兼职
  • 做软件需要网站wordpress 图片 压缩
  • 沧州市做网站的自己搞网站建设
  • 湖南做网站 搜搜磐石网络南联网站建设公司
  • 黑龙江建设网站简约手机网站源码
  • 深圳做网站网络公司排名科技公司办公室设计
  • 永久免费建站空间wordpress全球销量主题
  • 濮阳网站建设哪家好网站建设与规划方向
  • 寿光网站建设公司网站建设教程 乐视网
  • h5响应式网站开发网站转跳怎么做
  • ios网站开发工具有哪些wordpress下载站模板
  • 湖南网站设计亮点如何改变wordpress字体颜色
  • 海外网站建设平台网站后台如何更换在线qq咨询代码
  • 做存储各种环境信息的网站五八同城最新招聘信息
  • 阿里云的轻量服务器怎么做网站开发导航app多少钱
  • 淘宝客做销量的网站有哪些厦门企业网站建设
  • 网站开发那家好炫酷的网站
  • 使用免费的代码做网站学电商运营的培训机构
  • 邯郸做移动网站找谁建免费的网站吗
  • 物流wap网站模板天猫商城官网首页
  • 注册网站商标多少钱成都网站建设推来客网站系统报价
  • 深圳网站设计权威乐云践新个人建站提供软件下载
  • c2c网站开发成本湖南环保设备公司中企动力网站建设技术支持
  • 南京淘宝网站设计公司网络营销方式举个例子
  • 做网站搜索推广点击率太低怎么办价格低的形容词
  • 企业网站建设费用财务处理长春网站建设翻译