博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉树5(哈夫曼树)
阅读量:5123 次
发布时间:2019-06-13

本文共 1610 字,大约阅读时间需要 5 分钟。

哈夫曼树

1.题目描述:

哈夫曼树,第一行输入一个数n,表示叶结点的个数。 需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出所有结点的值与权值的乘积之和。

输入:

输入有多组数据。每组第一行输入一个数n,接着输入n个叶节点(叶节点权值不  超过100,2<=n<=1000)。

输出:

输出权值。

样例输入:

1 2 2 5 9

样例输出:

37

#include"iostream"using namespace std;class Tree{public:    int weight;    int left,right,parent;    Tree(int w = 0){        weight = w;        left = 0;        parent = 0;        right = 0;    }    void select(Tree *HT,int n,int &i1,int &i2){        for(int i = 1;i <= n;i++){            if(!HT[i].parent){                i1 = i;                break;            }        }        for(i = 1;i <= n;i++){            if(!HT[i].parent && HT[i1].weight > HT[i].weight){                i1 = i;            }        }        for(i = 1;i <= n;i++){            if(!HT[i].parent && i != i1){                i2 = i;                break;            }        }        for(i = 1;i <= n;i++){            if(!HT[i].parent && i != i1 && HT[i2].weight > HT[i].weight){                i2 = i;            }        }    }    void cinCreate(Tree* &HT,int n){        //初始化        HT = new Tree[2 * n];        for(int i = 1;i <= n;i++){            cin>>HT[i].weight;        }        int m = 2 * n - 1;        //结点个数        //创建哈夫曼树        for(i = n + 1;i <= m;i++){            Tree *newt = new Tree;            int i1 = 1,i2 = 1;            select(HT,i - 1,i1,i2);            cout<
<
<
<
>n; t->cinCreate(HT,n); int sum = 0; t->showx(HT,2 * n - 1,sum); cout<
<

 

转载于:https://www.cnblogs.com/oleolema/p/9028922.html

你可能感兴趣的文章
Eclipse相关集锦
查看>>
虚拟化架构中小型机构通用虚拟化架构
查看>>
继承条款effecitve c++ 条款41-45
查看>>
Java泛型的基本使用
查看>>
1076 Wifi密码 (15 分)
查看>>
noip模拟赛 党
查看>>
bzoj2038 [2009国家集训队]小Z的袜子(hose)
查看>>
Java反射机制及其Class类浅析
查看>>
Postman-----如何导入和导出
查看>>
移动设备显示尺寸大全 CSS3媒体查询
查看>>
图片等比例缩放及图片上下剧中
查看>>
【转载】Linux screen 命令详解
查看>>
background-clip,background-origin
查看>>
Android 高级UI设计笔记12:ImageSwitcher图片切换器
查看>>
Blog文章待看
查看>>
【Linux】ping命令详解
查看>>
对团队成员公开感谢博客
查看>>
java学习第三天
查看>>
python目录
查看>>
django+uwsgi+nginx+sqlite3部署+screen
查看>>